On Sun, Feb 11, 2007 at 04:15:36PM +0100, Guido Guenther wrote:
> it seems there can be leftover (untracked) files after a rename that
> happened during a recursive merge. Is this intentional? If so
> git_load_dirs would have to call 'git-clean' explicitly after the merge
> which looks strange (at least when merging to '.'). Example (based on
> input provided by Arnaud Cornet) below:
> 
> On Fri, Feb 09, 2007 at 11:13:45PM +0100, Arnaud Cornet wrote:
> > Hi Guido,
> > 
> > On ven, f?v 09, 2007 at 09:07:56 +0100, Guido Guenther wrote:
> > > Could you send me the git repo and the tarball via private mail or an
> > > URL to clone from to reproduce this? Removals do work fine here (tried
> > > that with dozens of packages).
> > 
> > Actually I was a bit wrong in my bug: in the git repo everything is ok.
> > The problem is only in the workdir, in which a deleted file is still
> > present after git-import-orig.
> the problem seems to be in "git pull" itself. After merging the upstream
> branch to master the file 'src/mpi.c' gets renamed to 'src/bignum.c' by
> git as it should, but the old file (src/mpi.c) isn't being removed from
> the checked out copy. This is the shortest way to reproduce this (I
> commented all output and all comments with '#' so it can be used as a
> script):
> 
> # preparation:
> apt-get source libxyssl-dev
> wget http://xyssl.org/code/download/xyssl-0.4.tgz
> 
> # create a new repo 'xyssl' with 'master' and 'upstream' branch:
> git-import-dsc xyssl_0.3-1.dsc
> # umpack the new upstream version to import:
> tar zcf xyssl-0.4.tgz
> 
> cd xyssl
> git-checkout upstream
> 
> # this imports the new xyssl onto the 'upstream' branch. The file
> # 'src/mpi.c' is removed via 'git rm' and 'src/bignum.c' is added via
> # 'git add' (as can be seen from git_load_dirs output):
> git_load_dirs -v ../xyssl-0.4
> git-status
> # nothing to commit
> ls src/bignum.c src/mpi.c
> #ls: src/mpi.c: No such file or directory
> #src/bignum.c
> # ...so mpi.c is gone on 'upstream' as it should be
> 
> git checkout master
> ls src/bignum.c src/mpi.c
> #ls: src/bignum.c: No such file or directory
> #src/mpi.c
> # ...mpi.c still exists on 'master'
> 
> git pull . upstream
> # rename src/{mpi.c => bignum.c} (67%)
> # ...so the recursive merge detects the rename, but:
> # Untracked files:
> #   (use "git add" to add to commit)
> #
> #       src/mpi.c
> 
> So shouldn't 'git-pull' remove src/mpi.c after it detects the rename?

Hi Guido, this sound much like #403104, so, yes, src/mpi.c should have
been removed.  This has been fixed upstream already, but the fix won't
be in etch unfortunately, see
 http://thread.gmane.org/gmane.comp.version-control.git/38617

Regards, Gerrit.


-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]

Reply via email to