--- 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 ---