[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#613615: darcs-load-dirs: crashes when importing symlinks to directories



Package: darcs-load-dirs
Version: 1.1.8
Severity: important

Hi,

This seems strongly related to #393048, in that it is caused by darcs_load_dirs
expecting a certain exit status from darcs that it does not receive.  Basically
if a directory contains a directory, and also a symlink to the same directory,
darcs will choke when trying to add both as one is already in the repository.

To reproduce:

  amoe@glimworm $ mkdir source-tree
  amoe@glimworm $ cd source-tree
  amoe@glimworm $ mkdir Bob
  amoe@glimworm $ ln -s Bob Alice
  amoe@glimworm $ cd ..
  amoe@glimworm $ mkdir repo
  amoe@glimworm $ cd repo
  amoe@glimworm $ darcs initialize
  amoe@glimworm $ darcs_load_dirs -v ../source-tree
   VCSCMD:  darcs
  Scanning upstream tree...
  Scanning working copy tree...
  Calculating changes...
   *** Processing changes.
  Deleting 0 files
  Copying upstream directory to working copy...
  Running:  tar ['-cSpf', '-', '.']
  Running:  tar ['-xSpf', '-']
  Adding 2 files
  Adding Alice
  Running:  darcs ['add', '--case-ok', 'Alice']
  Adding Bob/
  Running:  darcs ['add', '--case-ok', 'Bob']
  The following directory is already in the repository:
  Bob

  darcs failed:  No files were added
  Traceback (most recent call last):
    File "/usr/bin/darcs_load_dirs", line 25, in <module>
      init.run("darcs")
    File "/usr/lib/pymodules/python2.6/vcs_support/init.py", line 72, in run
      iobj.main()
    File "/usr/lib/pymodules/python2.6/vcs_support/vcs_interact.py", line 155, in main
      self.catchup(needsupdate)
    File "/usr/lib/pymodules/python2.6/vcs_support/vcs_interact.py", line 179, in catchup
      self.addfile(file)
    File "/usr/lib/pymodules/python2.6/vcs_support/vcs_interact.py", line 203, in addfile
      self.wcobj.addtag(file)
    File "/usr/lib/pymodules/python2.6/vcs_support/vcs_wc.py", line 86, in addtag
      cmd().add + [file])
    File "/usr/lib/pymodules/python2.6/vcs_support/util.py", line 110, in chdircmd
      return apply(func, args, kwargs)
    File "/usr/lib/pymodules/python2.6/vcs_support/util.py", line 66, in safeexec
      return checkresult(result, expected)
    File "/usr/lib/pymodules/python2.6/vcs_support/util.py", line 94, in checkresult
      raise ExecProblem, info + " (expected exit code %d)" % expected
  vcs_support.util.ExecProblem: exited with code 2 (expected exit code 0)

The alternative case, where the symlink is named Bob and the directory is named
Alice, also fails most of the time, but I have seen it work a few times, which
is very strange.

Cheers,
David

-- System Information:
Debian Release: wheezy/sid
  APT prefers unstable
  APT policy: (500, 'unstable')
Architecture: amd64 (x86_64)

Kernel: Linux 2.6.32-5-amd64 (SMP w/2 CPU cores)
Locale: LANG=en_GB.UTF-8, LC_CTYPE=en_GB.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash

Versions of packages darcs-load-dirs depends on:
ii  darcs                   2.4.4-3          a distributed, interactive, smart 
ii  load-dirs-common        1.1.8            Common files for vcs-load-dirs too
ii  python                  2.6.6-3+squeeze5 interactive high-level object-orie

darcs-load-dirs recommends no packages.

darcs-load-dirs suggests no packages.

-- no debconf information



Reply to: