git-annex/Git
Joey Hess ebd778c519 Escape ':' in file/directory names to avoid it being treated as a pathspec by some git commands
A git pathspec is a filename, except when it starts with ':', it's taken
to refer to a branch, etc. Rather than special case ':', any filename
starting with anything unusual is prefixed with "./"

This could have been a real mess to deal with, but luckily SafeCommand
is already extensively used and so we know at the type level the difference
between parameters that are files, and parameters that are command options.

Testing did show that Git.Queue was not using SafeCommand on
filenames fed to xargs. (Filenames starting with '-' worked before only
because -- was used to separate filenames from options when calling eg git
add.)

The test suite now passes with filenames starting with ':'. However, I did
not keep that change to it, because such filenames are probably not legal
on windows, and I have enough ugly windows ifdefs in there as it is.

This commit was sponsored by Otavio Salvador. Thanks!
2013-08-01 15:15:49 -04:00
..
AutoCorrect.hs finished where indentation changes 2012-12-13 00:24:19 -04:00
Branch.hs XMPP: Avoid redundant and unncessary pushes. Note that this breaks compatibility with previous versions of git-annex, which will refuse to accept any XMPP pushes from this version. 2013-05-21 18:24:29 -04:00
CatFile.hs Can now restart certain long-running git processes if they crash, and continue working. 2013-05-31 12:42:13 -04:00
CheckAttr.hs Can now restart certain long-running git processes if they crash, and continue working. 2013-05-31 12:42:13 -04:00
Command.hs avoid newline translation when writing to git hash-object 2013-06-18 15:08:51 -04:00
Config.hs fix permission damage (thanks, Windows) 2013-05-11 23:54:25 -04:00
Construct.hs fix windows build 2013-05-21 13:07:43 -04:00
CurrentRepo.hs fix permission damage (thanks, Windows) 2013-05-11 23:54:25 -04:00
DiffTree.hs XMPP: Avoid redundant and unncessary pushes. Note that this breaks compatibility with previous versions of git-annex, which will refuse to accept any XMPP pushes from this version. 2013-05-21 18:24:29 -04:00
Filename.hs handle C-style escapes in Format 2011-12-23 01:05:16 -04:00
FilePath.hs fix the day's windows permissions damage 2013-05-12 19:09:48 -04:00
HashObject.hs missed another hash-object call, disable filtering there too 2013-06-18 14:48:15 -04:00
Index.hs clean up from windows porting 2013-05-11 18:23:41 -04:00
LsFiles.hs importfeed: git-annex becomes a podcatcher in 150 LOC 2013-07-28 16:55:42 -04:00
LsTree.hs assistant: The ConfigMonitor left one zombie behind each time it checked for changes, now fixed. 2013-03-18 22:09:51 -04:00
Merge.hs git subcommand cleanup 2013-03-03 13:39:07 -04:00
Queue.hs Escape ':' in file/directory names to avoid it being treated as a pathspec by some git commands 2013-08-01 15:15:49 -04:00
Ref.hs include HEAD in CanPush shas 2013-05-21 20:04:38 -04:00
Remote.hs webapp: Generate better git remote names. 2012-10-31 15:26:19 -04:00
Sha.hs whitespace fixes 2012-12-13 00:45:27 -04:00
SharedRepository.hs Support git's core.sharedRepository configuration 2012-04-21 15:36:52 -04:00
Types.hs XMPP: Avoid redundant and unncessary pushes. Note that this breaks compatibility with previous versions of git-annex, which will refuse to accept any XMPP pushes from this version. 2013-05-21 18:24:29 -04:00
UnionMerge.hs union merge bugfix 2013-01-16 21:31:06 -04:00
UpdateIndex.hs Revert "flush stream after each write to update-index, to possibly avoid buffering issues on Windows" 2013-06-14 14:34:24 -04:00
Url.hs finished where indentation changes 2012-12-13 00:24:19 -04:00
Version.hs finished where indentation changes 2012-12-13 00:24:19 -04:00