Re: git-mv is not able to handle directory with one file in it
- From
Andreas Ericsson <ae@op5.se>
- Date
- Nov 23, 2005, 07:57 UTC
- Message-ID
- <438420CC.4050303@op5.se>
- In-Reply-To
- <200511231326.27972.lan@ac-sw.com>
Alexander Litvinov wrote:
> I have found one error during directory movig: If I move directory with one > file somewhere in it this script will try to add target directory instead of > file.
Are you saying this setup foodir/somefile.c <--file newdir/ <--directory
with this command git-mv foodir/ newdir
tries to create newdir/foodir/somefile.c <-- directory
or does it create newdir/somefile.c <-- file
?
It should create newdir/foodir/somefile.c <-- file
Otherwise it's misbehaving.
Try running it with the -v switch to make it shout out loud what it's trying to do, and then paste the output here.
Show 15 quoted lines
> Commenting lines starting from 190 solve this error. But I don't
> understand what is the logic behind this case ? Why do target directory
> checked instead of target file ? Should we replace $dst my $destfiles[0] ?
>
> at line 190 in git-mv:
> if (scalar @srcfiles == 1) {
> if ($overwritten{$dst} ==1) {
> push @changedfiles, $dst;
> } else {
> push @addedfiles, $dst;
> }
> }
> else {
> push @addedfiles, @dstfiles;
> }This is broken. It only checks if there's just one source-file regardless of whether or not it resided in a subdirectory. I'm not exactly fluent in perl so I can't submit a patch, but the src option needs to be directory aware, traverse all source directories and then move the files axing everything but the bottom-most dirname to the destination directory.
Any takers?
-- Andreas Ericsson andreas.ericsson@op5.se OP5 AB www.op5.se Tel: +46 8-230225 Fax: +46 8-230231