--- Begin Message ---
- To: Debian Bug Tracking System <submit@bugs.debian.org>
- Subject: tla-load-dirs: darcs_load_dirs fails when it encounters a boring file
- From: "Kurt B. Kaiser" <kbk@shore.net>
- Date: Sat, 14 Oct 2006 14:14:40 -0400
- Message-id: <20061014181440.6321.15151.reportbug@trader.bayview.thirdcreek.com>
Package: tla-load-dirs
Version: 1.0.31
Severity: important
Encountered while running dbp-importorig using a darcs repo as the source
directory.  Root of the problem is darcs 'fails' and returns a 2 status when
skipping a boring file if that is the only file being added.  Darcs_load_dirs
adds them one at a time.
Maybe a good long-term solution is for darcs upstream to change to return a 
special status code if it 'fails' when 'skipping boring'.  But I don't 
believe that it's an error.
I have a small patch which I'll send along.  You still get the 'darcs failed'
message (that has to be fixed upstream), but the exit status is ignored during
adds.  Although it's a bit of a kludge, at least it allows darcs_load_dirs to
import in the presence of 'boring' files like _darcs or .svn.  It's probably
the best we can do w/o a patch to darcs itself.
With this patch I was able to complete the operation below and also apparently
did a successful update of io.upstream with a new version.
There may be a similar issue when deleting boring files during an update, but I
haven't encountered that yet.  If it is similar, enhancing the patch should be
easy.  But I don't see anything in darcs Remove.lhs.
I gather tla-load-dirs is maintained in a darcs repo these days.  I'm sending a
darcs patch, but if you want a diff, let me know.
========================================================================
trader:io-import-test$ dbp-importorig ../pkg-io/Io-darcs/ io 0+20061013
 TLACMD:  darcs
Skipping boring file _build
darcs failed:  No files were added
Traceback (most recent call last):
  File "/usr/bin/darcs_load_dirs", line 26, in ?
    init.run("darcs")
  File "/usr/lib/python2.4/site-packages/tla_support/init.py", line 50, in run
    summary = options.summary).main()
  File "/usr/lib/python2.4/site-packages/tla_support/tla_interact.py", line 109, in main
    self.catchup(needsupdate)
  File "/usr/lib/python2.4/site-packages/tla_support/tla_interact.py", line 133, in catchup
    self.addfile(file)
  File "/usr/lib/python2.4/site-packages/tla_support/tla_interact.py", line 152, in addfile
    self.wcobj.addtag(file)
  File "/usr/lib/python2.4/site-packages/tla_support/tla_wc.py", line 78, in addtag
    cmd().add + [file])
  File "/usr/lib/python2.4/site-packages/tla_support/util.py", line 111, in chdircmd
    return apply(func, args, kwargs)
  File "/usr/lib/python2.4/site-packages/tla_support/util.py", line 67, in safeexec
    return checkresult(result, expected)
  File "/usr/lib/python2.4/site-packages/tla_support/util.py", line 95, in checkresult
    raise ExecProblem, info + " (expected exit code %d)" % expected
tla_support.util.ExecProblem: exited with code 2 (expected exit code 0)
Command darcs_load_dirs ["--wc=/home/kbk/Packages/io.upstream","--summary=Import upstream io version 0+20061013","/home/kbk/Packages/pkg-io/Io-darcs"] failed; exit code 1
dbp-importorig: user error (Command darcs_load_dirs ["--wc=/home/kbk/Packages/io.upstream","--summary=Import upstream io version 0+20061013","/home/kbk/Packages/pkg-io/Io-darcs"] failed; exit code 1)
====================================================================
trader:io-import-test$ darcs_load_dirs -v --wc=/home/kbk/Packages/io.upstream --summary="Import upstream io version 0+20061013" /home/kbk/Packages/pkg-io/Io-darcs/
 TLACMD:  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 3103 files
Adding _darcs/
Running:  darcs ['add', '--case-ok', '_darcs']
Skipping boring file _darcs
darcs failed:  No files were added
Traceback (most recent call last):
  File "/usr/bin/darcs_load_dirs", line 26, in ?
    init.run("darcs")
  File "/usr/lib/python2.4/site-packages/tla_support/init.py", line 50, in run
    summary = options.summary).main()
  File "/usr/lib/python2.4/site-packages/tla_support/tla_interact.py", line 109, in main
    self.catchup(needsupdate)
  File "/usr/lib/python2.4/site-packages/tla_support/tla_interact.py", line 133, in catchup
    self.addfile(file)
  File "/usr/lib/python2.4/site-packages/tla_support/tla_interact.py", line 152, in addfile
    self.wcobj.addtag(file)
  File "/usr/lib/python2.4/site-packages/tla_support/tla_wc.py", line 78, in addtag
    cmd().add + [file])
  File "/usr/lib/python2.4/site-packages/tla_support/util.py", line 111, in chdircmd
    return apply(func, args, kwargs)
  File "/usr/lib/python2.4/site-packages/tla_support/util.py", line 67, in safeexec
    return checkresult(result, expected)
  File "/usr/lib/python2.4/site-packages/tla_support/util.py", line 95, in checkresult
    raise ExecProblem, info + " (expected exit code %d)" % expected
tla_support.util.ExecProblem: exited with code 2 (expected exit code 0)
=================================================================
trader:io-import-test$ cd ../io.upstream/
trader:io.upstream$ ls
Makefile  Makefile.lib  Makefile~  _build  _darcs  addons  boring  build  build.io  docs  libs  projects  readme.txt  samples  tools
trader:io.upstream$ darcs add --case-ok _darcs
Skipping boring file _darcs
darcs failed:  No files were added
trader:io.upstream$ echo $?
2
===================================================================
-- System Information:
Debian Release: testing/unstable
  APT prefers unstable
  APT policy: (990, 'unstable')
Architecture: i386 (i686)
Shell:  /bin/sh linked to /bin/bash
Kernel: Linux 2.4.21-kbk
Locale: LANG=C, LC_CTYPE=C (charmap=ANSI_X3.4-1968)
--- End Message ---