git/list[1] front-page[2] threads[3] people[4] search[5] about
 

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
Previous: Alexander LitvinovNext: Alexander Litvinov
Message 18 of 23 in “git-mv is not able to handle big directories”
  1. git-mv is not able to handle big directoriesAlexander Litvinov, Nov 23, 2005
  2. Junio C HamanoNov 23, 2005
  3. Junio C HamanoNov 23, 2005
  4. Randal L. SchwartzNov 23, 2005
  5. Junio C HamanoNov 23, 2005
  6. Ryan AndersonNov 23, 2005
  7. Perl version support (was Re: [PATCH] git-mv is not able to handle big directories)Randal L. Schwartz, Nov 23, 2005
  8. Junio C HamanoNov 23, 2005
  9. Randal L. SchwartzNov 23, 2005
  10. H. Peter AnvinNov 23, 2005
  11. Randal L. SchwartzNov 23, 2005
  12. Morten WelinderNov 23, 2005
  13. Ryan AndersonNov 28, 2005
  14. Andreas EricssonNov 28, 2005
  15. Junio C HamanoNov 23, 2005
  16. Ryan AndersonNov 23, 2005
  17. Alexander LitvinovNov 23, 2005
  18. Andreas EricssonNov 23, 2005
  19. Alexander LitvinovNov 23, 2005
  20. Alexander LitvinovNov 23, 2005
  21. Josef WeidendorferNov 23, 2005
  22. Josef WeidendorferNov 23, 2005
  23. Randal L. SchwartzNov 23, 2005

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.