I was somewhat surprised the other day to see that you can't pass
absolute paths to "git add":
$ cd /tmp
$ mkdir foo
$ cd foo
$ git init
Initialized empty Git repository in .git/cuzco:foo
$ echo "content" > file
$ git add /tmp/foo/file
fatal: unable to add /tmp/foo/file to index
$ git add file
I understand that you can't add arbitrary paths outside of your
worktree, but if the absolute path specifies something _inside_ your
worktree then it seems that this is either a bug or a "usability
shortcoming" if you prefer to avoid the term "bug".
I also understand that providing a relative path is by far the most
common operation, but there are real use cases where it's easier to
pass an absolute path. For example: you're working at the console
inside the work tree but you also have a GUI file browser open
alongside. Sometimes it is simpler to drag-and-drop the file from the
GUI to the console window (thus inserting the absolute path to the
file) rather than typing out the relative path, even with
autocompletion.
Out of curiosity I went back and looked at the last version of Git
before "add" became a built-in (1.3.3). It also barfs for absolute
paths:
$ git add file
Ignoring path /tmp/foo/file
So I suspect it's always been this way. Do people agree that this
issue is worth addressing?
Cheers,
Wincent
-
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html