[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
arch bug (was: [Gnu-arch-users] more CVS->arch woes: botched patchset an
From: |
Denys Duchier |
Subject: |
arch bug (was: [Gnu-arch-users] more CVS->arch woes: botched patchset and commit locking problem) |
Date: |
Sat, 27 Sep 2003 22:49:04 +0200 |
User-agent: |
Gnus/5.1003 (Gnus v5.10.3) Emacs/21.3 (gnu/linux) |
Hi Tom,
I figured out the problem I had with a botched changeset. This is a
tla bug.
Suppose you have a project with a binary file foo.gz and suppose you
modify this file. If you try to commit as follows:
echo foo.gz > ,,FILES
tla commit -L "watch me die" --file-list ,,FILES
then it will output the following error message AND check in the
botched changeset anyway:
arch_apply_changeset: internal error (patch(1) returned odd status)
patch(1) exit status: 2
patch: **** Only garbage was found in the patch input.
The reason is that the diff file contains the line:
Files orig/foo.gz and mod/foo.gz differ
The reason for this is that make-changeset-files.c does not implement
the correct logic for dealing with the return status of
arch_invoke_diff. In fact it doesn't deal with it at all.
After looking at the code, I am under the impression that you must
have had some sort of plan to eventually dump
arch_make_files_changeset in favor of a call to arch_make_changeset
with an appropriate limits_spec argument, but that that hasn't
happened yet. Am I correct, or completely off base?
If I am right, should I attempt to make this change?
Cheers,
--
Dr. Denys Duchier
Équipe Calligramme
LORIA, Nancy, FRANCE