Hello everybody,
[About my experience on version control systems: I started out with SCCS in the eighties, and I thought it must be cool as the UNIX guys used it to maintain their sources. Some times later I was using Emacs' numbered backup files as a poor substiutute for nothing else. Then I came across RCS, and I liked it soon ,because it was fully documented and well-written. I even ported it to MS-DOS (whew!). I was attaching tags to individual files to mark "releases" at those times. Then I heard about CVS. It seemed to help with the tagging, so I used it for the mopre complex projects. I even did branches and merging with it for the Linux sources. I spontaneously diskliked Bitkeeper, because it would not work off-line. I heard about Git some time ago, but using it seems very non-obvious. After having read the tutorial, and playing some simple scenarios, I must admit that I really like the fully distributed nature of it. However some commands seem to be a bit strange (e.g. "git add" is almost, but quite a "commit" (if you come from CVS)), and sources are quite complex. Also some seemingly dangerous commands that cannot easily be undone should ask safety questions ("cvs merge (-j)" would also fall into that category.]
What I'd like to see in git (My apologies if some were already discussed to death):
1) The ability to use the file's time at the time of add/commit instead of the current time, and the ability tho check outfiles with the times stored in the repository.
2) Keyword substitution. I know it's controverse (dealing with binary files), but I'd like to have some automatic version numbering keyword at least: Initial idea is that every commit with a change increments the number by one, and when merging numbers a and b, the resulting number is max(a, b) + 1.
3) "git undo": If possible undo the effects of the last command.
Following are some random remarks from a first-time git user, regarding the buld/install:
Notes on building git-1.6.1.3 on openSUSE 11.0: There is no "asciidoc"; the INSTALL should be more verbose on special requirements (i.e. additional packages needed, and where to get them). LANG= make configure /bin/sh: curl-config: command not found make: `configure' is up to date.
make[2]: Entering directory `/git/git-1.6.1.3'
make[2]: `GIT-VERSION-FILE' is up to date.
make[2]: Leaving directory `/git/git-1.6.1.3'
rm -f git-add.html+ git-add.html
asciidoc -b xhtml11 -d manpage -f asciidoc.conf \
-agit_version=1.6.1.3 -o git-add.html+ git-add.txt
make[1]: asciidoc: Command not found
make[1]: *** [git-add.html] Error 127
make[1]: Leaving directory `/git/git-1.6.1.3/Documentation'
make: *** [doc] Error 2Some parts of the make process may look like an error if they pass by quickly:
[...]
GEN git-request-pull
GEN git-sh-setup
GEN git-stash
GEN git-submodule
GEN git-web--browse
SUBDIR perl
/usr/bin/perl Makefile.PL PREFIX='/home/windl/Projects/git/inst'
Writing perl.mak for Git
GEN git-add--interactive
GEN git-archimport
GEN git-cvsexportcommit
GEN git-cvsimport
[...]Same is true for the install process:
make[1]: Leaving directory `/home/windl/Projects/git/git-1.6.1.3/git-gui'
bindir=$(cd '/home/windl/Projects/git/inst/bin' && pwd) && \
execdir=$(cd '/home/windl/Projects/git/inst/libexec/git-core/' && pwd) &&
\
{ rm -f "$execdir/git-add" && \
ln git-add "$execdir/git-add" 2>/dev/null || \
cp git-add "$execdir/git-add"; } && \
{ rm -f "$execdir/git-annotate" && ln "$execdir/git-add" "$execdir/git-
annotate" 2>/dev/null || ln -s "git-add" "$execdir/git-annotate" 2>/dev/null || cp
"$execdir/git-add" "$execdir/git-annotate" || exit; rm -f "$execdir/git-apply" &&
ln "$execdir/git-add" "$execdir/git-apply" 2>/dev/null || ln -s "git-add"
"$execdir/git-apply" 2>/dev/null || cp "$execdir/git-add" "$execdir/git-apply" ||
exit; rm -f "$execdir/git-archive" && ln "$execdir/git-add" "$execdir/git-
archive" 2>/dev/null || ln -s "git-add" "$execdir/git-archive" 2>/dev/null || cp
"$execdir/git-add" "$execdir/git-archive" || exit; rm -f "$execdir/git-blame" &&
ln "$execdir/git-add" "$execdir/git-blame" 2>/dev/null || ln -s "git-add"
"$execdir/git-blame" 2>/dev/null || cp "$execdir/git-add" "$execdir/git-blame" ||
exit; rm -f "$execdir/git-branch" && ln "$execdir/git-add" "$execdir/git-branch"
2>/dev/null || ln -s "git-add" "$execdir/git-branch" 2>/dev/null || cp
"$execdir/git-add" "$execdir/git-branch" || exit; rm -f "$execdir/git-bundle" &&
ln "$execdir/git-add" "$execdir/git-bundle" 2>/dev/null || ln -s "git-add"
"$execdir/git-bundle" 2>/dev/null || cp "$execdir/git-add" "$execdir/git-bundle"
|| exit; rm -f "$execdir/git-cat-file" && ln "$execdir/git-add" "$execdir/git-
cat-file" 2>/dev/null || ln -s "git-add" "$execdir/git-cat-file" 2>/dev/null || cp
"$execdir/git-add" "$execdir/git-cat-file" || exit; rm -f "$execdir/git-check-
attr" && ln "$execdir/git-add" "$execdir/git-check-attr" 2>/dev/null || ln -s
"git-add" "$execdir/git-check-attr" 2>/dev/null || cp "$execdir/git-add"
"$execdir/git-check-attr" || exit; rm -f "$execdir/git-check-ref-format" && ln
"$execdir/git-add" "$execdir/git-check-ref-format" 2>/dev/null || ln -s "git-add"
"$execdir/git-check-ref-format" 2>/dev/null || cp "$execdir/git-add"
"$execdir/git-check-ref-format" || exit; rm -f "$execdir/git-checkout-index" &&
ln "$execdir/git-add" "$execdir/git-checkout-index" 2>/dev/null || ln -s "git-add"
"$execdir/git-checkout-index" 2>/dev/null || cp "$execdir/git-add" "$execdir/git-
checkout-index" || exit; rm -f "$execdir/git-checkout" && ln "$execdir/git-add"
"$execdir/git-checkout" 2>/dev/null || ln -s "git-add" "$execdir/git-checkout"
2>/dev/null || cp "$execdir/git-add" "$execdir/git-checkout" || exit; rm -f
"$execdir/git-clean" && ln "$execdir/git-add" "$execdir/git-clean" 2>/dev/null ||
ln -s "git-add" "$execdir/git-clean" 2>/dev/null || cp "$execdir/git-add"
"$execdir/git-clean" || exit; rm -f "$execdir/git-clone" && ln "$execdir/git-add"
"$execdir/git-clone" 2>/dev/null || ln -s "git-add" "$execdir/git-clone"
2>/dev/null || cp "$execdir/git-add" "$execdir/git-clone" || exit; rm -f
"$execdir/git-commit-tree" && ln "$execdir/git-add" "$execdir/git-commit-tree"
2>/dev/null || ln -s "git-add" "$execdir/git-commit-tree" 2>/dev/null || cp
"$execdir/git-add" "$execdir/git-commit-tree" || exit; rm -f "$execdir/git-
commit" && ln "$execdir/git-add" "$execdir/git-commit" 2>/dev/null || ln -s "git-
add" "$execdir/git-commit" 2>/dev/null || cp "$execdir/git-add" "$execdir/git-
commit" || exit; rm -f "$execdir/git-config" && ln "$execdir/git-add"
"$execdir/git-config" 2>/dev/null || ln -s "git-add" "$execdir/git-config"
2>/dev/null || cp "$execdir/git-add" "$execdir/git-config" || exit; rm -f
"$execdir/git-count-objects" && ln "$execdir/git-add" "$execdir/git-count-objects"
2>/dev/null || ln -s "git-add" "$execdir/git-count-objects" 2>/dev/null || cp
"$execdir/git-add" "$execdir/git-count-objects" || exit; rm -f "$execdir/git-
describe" && ln "$execdir/git-add" "$execdir/git-describe" 2>/dev/null || ln -s
"git-add" "$execdir/git-describe" 2>/dev/null || cp "$execdir/git-add"
"$execdir/git-describe" || exit; rm -f "$execdir/git-diff-files" && ln
"$execdir/git-add" "$execdir/git-diff-files" 2>/dev/null || ln -s "git-add"
"$execdir/git-diff-files" 2>/dev/null || cp "$execdir/git-add" "$execdir/git-diff-
files" || exit; rm -f "$execdir/git-diff-index" && ln "$execdir/git-add"
"$execdir/git-diff-index" 2>/dev/null || ln -s "git-add" "$execdir/git-diff-index"
2>/dev/null || cp "$execdir/git-add" "$execdir/git-diff-index" || exit; rm -f
"$execdir/git-diff-tree" && ln "$execdir/git-add" "$execdir/git-diff-tree"
2>/dev/null || ln -s "git-add" "$execdir/git-diff-tree" 2>/dev/null || cp
"$execdir/git-add" "$execdir/git-diff-tree" || exit; rm -f "$execdir/git-diff" &&
ln "$execdir/git-add" "$execdir/git-diff" 2>/dev/null || ln -s "git-add"
"$execdir/git-diff" 2>/dev/null || cp "$execdir/git-add" "$execdir/git-diff" ||
exit; rm -f "$execdir/git-fast-export" && ln "$execdir/git-add" "$execdir/git-
fast-export" 2>/dev/null || ln -s "git-add" "$execdir/git-fast-export" 2>/dev/null
|| cp "$execdir/git-add" "$execdir/git-fast-export" || exit; rm -f "$execdir/git-
fetch--tool" && ln "$execdir/git-add" "$execdir/git-fetch--tool" 2>/dev/null || ln
-s "git-add" "$execdir/git-fetch--tool" 2>/dev/null || cp "$execdir/git-add"
"$execdir/git-fetch--tool" || exit; rm -f "$execdir/git-fetch-pack" && ln
"$execdir/git-add" "$execdir/git-fetch-pack" 2>/dev/null || ln -s "git-add"
"$execdir/git-fetch-pack" 2>/dev/null || cp "$execdir/git-add" "$execdir/git-
fetch-pack" || exit; rm -f "$execdir/git-fetch" && ln "$execdir/git-add"
"$execdir/git-fetch" 2>/dev/null || ln -s "git-add" "$execdir/git-fetch"
2>/dev/null || cp "$execdir/git-add" "$execdir/git-fetch" || exit; rm -f
"$execdir/git-fmt-merge-msg" && ln "$execdir/git-add" "$execdir/git-fmt-merge-msg"
2>/dev/null || ln -s "git-add" "$execdir/git-fmt-merge-msg" 2>/dev/null || cp
"$execdir/git-add" "$execdir/git-fmt-merge-msg" || exit; rm -f "$execdir/git-for-
each-ref" && ln "$execdir/git-add" "$execdir/git-for-each-ref" 2>/dev/null || ln -
s "git-add" "$execdir/git-for-each-ref" 2>/dev/null || cp "$execdir/git-add"
"$execdir/git-for-each-ref" || exit; rm -f "$execdir/git-fsck" && ln
"$execdir/git-add" "$execdir/git-fsck" 2>/dev/null || ln -s "git-add"
"$execdir/git-fsck" 2>/dev/null || cp "$execdir/git-add" "$execdir/git-fsck" ||
exit; rm -f "$execdir/git-gc" && ln "$execdir/git-add" "$execdir/git-gc"
2>/dev/null || ln -s "git-add" "$execdir/git-gc" 2>/dev/null || cp "$execdir/git-
add" "$execdir/git-gc" || exit; rm -f "$execdir/git-grep" && ln "$execdir/git-
add" "$execdir/git-grep" 2>/dev/null || ln -s "git-add" "$execdir/git-grep"
2>/dev/null || cp "$execdir/git-add" "$execdir/git-grep" || exit; rm -f
"$execdir/git-help" && ln "$execdir/git-add" "$execdir/git-help" 2>/dev/null || ln
-s "git-add" "$execdir/git-help" 2>/dev/null || cp "$execdir/git-add"
"$execdir/git-help" || exit; rm -f "$execdir/git-init-db" && ln "$execdir/git-
add" "$execdir/git-init-db" 2>/dev/null || ln -s "git-add" "$execdir/git-init-db"
2>/dev/null || cp "$execdir/git-add" "$execdir/git-init-db" || exit; rm -f
"$execdir/git-log" && ln "$execdir/git-add" "$execdir/git-log" 2>/dev/null || ln -
s "git-add" "$execdir/git-log" 2>/dev/null || cp "$execdir/git-add" "$execdir/git-
log" || exit; rm -f "$execdir/git-ls-files" && ln "$execdir/git-add"
"$execdir/git-ls-files" 2>/dev/null || ln -s "git-add" "$execdir/git-ls-files"
2>/dev/null || cp "$execdir/git-add" "$execdir/git-ls-files" || exit; rm -f
"$execdir/git-ls-remote" && ln "$execdir/git-add" "$execdir/git-ls-remote"
2>/dev/null || ln -s "git-add" "$execdir/git-ls-remote" 2>/dev/null || cp
"$execdir/git-add" "$execdir/git-ls-remote" || exit; rm -f "$execdir/git-ls-tree"
&& ln "$execdir/git-add" "$execdir/git-ls-tree" 2>/dev/null || ln -s "git-add"
"$execdir/git-ls-tree" 2>/dev/null || cp "$execdir/git-add" "$execdir/git-ls-tree"
|| exit; rm -f "$execdir/git-mailinfo" && ln "$execdir/git-add" "$execdir/git-
mailinfo" 2>/dev/null || ln -s "git-add" "$execdir/git-mailinfo" 2>/dev/null || cp
"$execdir/git-add" "$execdir/git-mailinfo" || exit; rm -f "$execdir/git-
mailsplit" && ln "$execdir/git-add" "$execdir/git-mailsplit" 2>/dev/null || ln -s
"git-add" "$execdir/git-mailsplit" 2>/dev/null || cp "$execdir/git-add"
"$execdir/git-mailsplit" || exit; rm -f "$execdir/git-merge" && ln "$execdir/git-
add" "$execdir/git-merge" 2>/dev/null || ln -s "git-add" "$execdir/git-merge"
2>/dev/null || cp "$execdir/git-add" "$execdir/git-merge" || exit; rm -f
"$execdir/git-merge-base" && ln "$execdir/git-add" "$execdir/git-merge-base"
2>/dev/null || ln -s "git-add" "$execdir/git-merge-base" 2>/dev/null || cp
"$execdir/git-add" "$execdir/git-merge-base" || exit; rm -f "$execdir/git-merge-
file" && ln "$execdir/git-add" "$execdir/git-merge-file" 2>/dev/null || ln -s
"git-add" "$execdir/git-merge-file" 2>/dev/null || cp "$execdir/git-add"
"$execdir/git-merge-file" || exit; rm -f "$execdir/git-merge-ours" && ln
"$execdir/git-add" "$execdir/git-merge-ours" 2>/dev/null || ln -s "git-add"
"$execdir/git-merge-ours" 2>/dev/null || cp "$execdir/git-add" "$execdir/git-
merge-ours" || exit; rm -f "$execdir/git-merge-recursive" && ln "$execdir/git-
add" "$execdir/git-merge-recursive" 2>/dev/null || ln -s "git-add" "$execdir/git-
merge-recursive" 2>/dev/null || cp "$execdir/git-add" "$execdir/git-merge-
recursive" || exit; rm -f "$execdir/git-mv" && ln "$execdir/git-add"
"$execdir/git-mv" 2>/dev/null || ln -s "git-add" "$execdir/git-mv" 2>/dev/null ||
cp "$execdir/git-add" "$execdir/git-mv" || exit; rm -f "$execdir/git-name-rev" &&
ln "$execdir/git-add" "$execdir/git-name-rev" 2>/dev/null || ln -s "git-add"
"$execdir/git-name-rev" 2>/dev/null || cp "$execdir/git-add" "$execdir/git-name-
rev" || exit; rm -f "$execdir/git-pack-objects" && ln "$execdir/git-add"
"$execdir/git-pack-objects" 2>/dev/null || ln -s "git-add" "$execdir/git-pack-
objects" 2>/dev/null || cp "$execdir/git-add" "$execdir/git-pack-objects" || exit;
rm -f "$execdir/git-pack-refs" && ln "$execdir/git-add" "$execdir/git-pack-refs"
2>/dev/null || ln -s "git-add" "$execdir/git-pack-refs" 2>/dev/null || cp
"$execdir/git-add" "$execdir/git-pack-refs" || exit; rm -f "$execdir/git-prune-
packed" && ln "$execdir/git-add" "$execdir/git-prune-packed" 2>/dev/null || ln -s
"git-add" "$execdir/git-prune-packed" 2>/dev/null || cp "$execdir/git-add"
"$execdir/git-prune-packed" || exit; rm -f "$execdir/git-prune" && ln
"$execdir/git-add" "$execdir/git-prune" 2>/dev/null || ln -s "git-add"
"$execdir/git-prune" 2>/dev/null || cp "$execdir/git-add" "$execdir/git-prune" ||
exit; rm -f "$execdir/git-push" && ln "$execdir/git-add" "$execdir/git-push"
2>/dev/null || ln -s "git-add" "$execdir/git-push" 2>/dev/null || cp
"$execdir/git-add" "$execdir/git-push" || exit; rm -f "$execdir/git-read-tree" &&
ln "$execdir/git-add" "$execdir/git-read-tree" 2>/dev/null || ln -s "git-add"
"$execdir/git-read-tree" 2>/dev/null || cp "$execdir/git-add" "$execdir/git-read-
tree" || exit; rm -f "$execdir/git-receive-pack" && ln "$execdir/git-add"
"$execdir/git-receive-pack" 2>/dev/null || ln -s "git-add" "$execdir/git-receive-
pack" 2>/dev/null || cp "$execdir/git-add" "$execdir/git-receive-pack" || exit;
rm -f "$execdir/git-reflog" && ln "$execdir/git-add" "$execdir/git-reflog"
2>/dev/null || ln -s "git-add" "$execdir/git-reflog" 2>/dev/null || cp
"$execdir/git-add" "$execdir/git-reflog" || exit; rm -f "$execdir/git-remote" &&
ln "$execdir/git-add" "$execdir/git-remote" 2>/dev/null || ln -s "git-add"
"$execdir/git-remote" 2>/dev/null || cp "$execdir/git-add" "$execdir/git-remote"
|| exit; rm -f "$execdir/git-rerere" && ln "$execdir/git-add" "$execdir/git-
rerere" 2>/dev/null || ln -s "git-add" "$execdir/git-rerere" 2>/dev/null || cp
"$execdir/git-add" "$execdir/git-rerere" || exit; rm -f "$execdir/git-reset" &&
ln "$execdir/git-add" "$execdir/git-reset" 2>/dev/null || ln -s "git-add"
"$execdir/git-reset" 2>/dev/null || cp "$execdir/git-add" "$execdir/git-reset" ||
exit; rm -f "$execdir/git-rev-list" && ln "$execdir/git-add" "$execdir/git-rev-
list" 2>/dev/null || ln -s "git-add" "$execdir/git-rev-list" 2>/dev/null || cp
"$execdir/git-add" "$execdir/git-rev-list" || exit; rm -f "$execdir/git-rev-
parse" && ln "$execdir/git-add" "$execdir/git-rev-parse" 2>/dev/null || ln -s
"git-add" "$execdir/git-rev-parse" 2>/dev/null || cp "$execdir/git-add"
"$execdir/git-rev-parse" || exit; rm -f "$execdir/git-revert" && ln
"$execdir/git-add" "$execdir/git-revert" 2>/dev/null || ln -s "git-add"
"$execdir/git-revert" 2>/dev/null || cp "$execdir/git-add" "$execdir/git-revert"
|| exit; rm -f "$execdir/git-rm" && ln "$execdir/git-add" "$execdir/git-rm"
2>/dev/null || ln -s "git-add" "$execdir/git-rm" 2>/dev/null || cp "$execdir/git-
add" "$execdir/git-rm" || exit; rm -f "$execdir/git-send-pack" && ln
"$execdir/git-add" "$execdir/git-send-pack" 2>/dev/null || ln -s "git-add"
"$execdir/git-send-pack" 2>/dev/null || cp "$execdir/git-add" "$execdir/git-send-
pack" || exit; rm -f "$execdir/git-shortlog" && ln "$execdir/git-add"
"$execdir/git-shortlog" 2>/dev/null || ln -s "git-add" "$execdir/git-shortlog"
2>/dev/null || cp "$execdir/git-add" "$execdir/git-shortlog" || exit; rm -f
"$execdir/git-show-branch" && ln "$execdir/git-add" "$execdir/git-show-branch"
2>/dev/null || ln -s "git-add" "$execdir/git-show-branch" 2>/dev/null || cp
"$execdir/git-add" "$execdir/git-show-branch" || exit; rm -f "$execdir/git-show-
ref" && ln "$execdir/git-add" "$execdir/git-show-ref" 2>/dev/null || ln -s "git-
add" "$execdir/git-show-ref" 2>/dev/null || cp "$execdir/git-add" "$execdir/git-
show-ref" || exit; rm -f "$execdir/git-stripspace" && ln "$execdir/git-add"
"$execdir/git-stripspace" 2>/dev/null || ln -s "git-add" "$execdir/git-stripspace"
2>/dev/null || cp "$execdir/git-add" "$execdir/git-stripspace" || exit; rm -f
"$execdir/git-symbolic-ref" && ln "$execdir/git-add" "$execdir/git-symbolic-ref"
2>/dev/null || ln -s "git-add" "$execdir/git-symbolic-ref" 2>/dev/null || cp
"$execdir/git-add" "$execdir/git-symbolic-ref" || exit; rm -f "$execdir/git-tag"
&& ln "$execdir/git-add" "$execdir/git-tag" 2>/dev/null || ln -s "git-add"
"$execdir/git-tag" 2>/dev/null || cp "$execdir/git-add" "$execdir/git-tag" ||
exit; rm -f "$execdir/git-tar-tree" && ln "$execdir/git-add" "$execdir/git-tar-
tree" 2>/dev/null || ln -s "git-add" "$execdir/git-tar-tree" 2>/dev/null || cp
"$execdir/git-add" "$execdir/git-tar-tree" || exit; rm -f "$execdir/git-unpack-
objects" && ln "$execdir/git-add" "$execdir/git-unpack-objects" 2>/dev/null || ln
-s "git-add" "$execdir/git-unpack-objects" 2>/dev/null || cp "$execdir/git-add"
"$execdir/git-unpack-objects" || exit; rm -f "$execdir/git-update-index" && ln
"$execdir/git-add" "$execdir/git-update-index" 2>/dev/null || ln -s "git-add"
"$execdir/git-update-index" 2>/dev/null || cp "$execdir/git-add" "$execdir/git-
update-index" || exit; rm -f "$execdir/git-update-ref" && ln "$execdir/git-add"
"$execdir/git-update-ref" 2>/dev/null || ln -s "git-add" "$execdir/git-update-ref"
2>/dev/null || cp "$execdir/git-add" "$execdir/git-update-ref" || exit; rm -f
"$execdir/git-upload-archive" && ln "$execdir/git-add" "$execdir/git-upload-
archive" 2>/dev/null || ln -s "git-add" "$execdir/git-upload-archive" 2>/dev/null
|| cp "$execdir/git-add" "$execdir/git-upload-archive" || exit; rm -f
"$execdir/git-verify-pack" && ln "$execdir/git-add" "$execdir/git-verify-pack"
2>/dev/null || ln -s "git-add" "$execdir/git-verify-pack" 2>/dev/null || cp
"$execdir/git-add" "$execdir/git-verify-pack" || exit; rm -f "$execdir/git-
verify-tag" && ln "$execdir/git-add" "$execdir/git-verify-tag" 2>/dev/null || ln -
s "git-add" "$execdir/git-verify-tag" 2>/dev/null || cp "$execdir/git-add"
"$execdir/git-verify-tag" || exit; rm -f "$execdir/git-write-tree" && ln
"$execdir/git-add" "$execdir/git-write-tree" 2>/dev/null || ln -s "git-add"
"$execdir/git-write-tree" 2>/dev/null || cp "$execdir/git-add" "$execdir/git-
write-tree" || exit; rm -f "$execdir/git-cherry-pick" && ln "$execdir/git-add"
"$execdir/git-cherry-pick" 2>/dev/null || ln -s "git-add" "$execdir/git-cherry-
pick" 2>/dev/null || cp "$execdir/git-add" "$execdir/git-cherry-pick" || exit; rm
-f "$execdir/git-cherry" && ln "$execdir/git-add" "$execdir/git-cherry"
2>/dev/null || ln -s "git-add" "$execdir/git-cherry" 2>/dev/null || cp
"$execdir/git-add" "$execdir/git-cherry" || exit; rm -f "$execdir/git-format-
patch" && ln "$execdir/git-add" "$execdir/git-format-patch" 2>/dev/null || ln -s
"git-add" "$execdir/git-format-patch" 2>/dev/null || cp "$execdir/git-add"
"$execdir/git-format-patch" || exit; rm -f "$execdir/git-fsck-objects" && ln
"$execdir/git-add" "$execdir/git-fsck-objects" 2>/dev/null || ln -s "git-add"
"$execdir/git-fsck-objects" 2>/dev/null || cp "$execdir/git-add" "$execdir/git-
fsck-objects" || exit; rm -f "$execdir/git-get-tar-commit-id" && ln
"$execdir/git-add" "$execdir/git-get-tar-commit-id" 2>/dev/null || ln -s "git-add"
"$execdir/git-get-tar-commit-id" 2>/dev/null || cp "$execdir/git-add"
"$execdir/git-get-tar-commit-id" || exit; rm -f "$execdir/git-init" && ln
"$execdir/git-add" "$execdir/git-init" 2>/dev/null || ln -s "git-add"
"$execdir/git-init" 2>/dev/null || cp "$execdir/git-add" "$execdir/git-init" ||
exit; rm -f "$execdir/git-merge-subtree" && ln "$execdir/git-add" "$execdir/git-
merge-subtree" 2>/dev/null || ln -s "git-add" "$execdir/git-merge-subtree"
2>/dev/null || cp "$execdir/git-add" "$execdir/git-merge-subtree" || exit; rm -f
"$execdir/git-peek-remote" && ln "$execdir/git-add" "$execdir/git-peek-remote"
2>/dev/null || ln -s "git-add" "$execdir/git-peek-remote" 2>/dev/null || cp
"$execdir/git-add" "$execdir/git-peek-remote" || exit; rm -f "$execdir/git-repo-
config" && ln "$execdir/git-add" "$execdir/git-repo-config" 2>/dev/null || ln -s
"git-add" "$execdir/git-repo-config" 2>/dev/null || cp "$execdir/git-add"
"$execdir/git-repo-config" || exit; rm -f "$execdir/git-show" && ln
"$execdir/git-add" "$execdir/git-show" 2>/dev/null || ln -s "git-add"
"$execdir/git-show" 2>/dev/null || cp "$execdir/git-add" "$execdir/git-show" ||
exit; rm -f "$execdir/git-stage" && ln "$execdir/git-add" "$execdir/git-stage"
2>/dev/null || ln -s "git-add" "$execdir/git-stage" 2>/dev/null || cp
"$execdir/git-add" "$execdir/git-stage" || exit; rm -f "$execdir/git-status" &&
ln "$execdir/git-add" "$execdir/git-status" 2>/dev/null || ln -s "git-add"
"$execdir/git-status" 2>/dev/null || cp "$execdir/git-add" "$execdir/git-status"
|| exit; rm -f "$execdir/git-whatchanged" && ln "$execdir/git-add" "$execdir/git-
whatchanged" 2>/dev/null || ln -s "git-add" "$execdir/git-whatchanged" 2>/dev/null
|| cp "$execdir/git-add" "$execdir/git-whatchanged" || exit; } && \
./check_bindir "z$bindir" "z$execdir" "$bindir/git-add"There's a problem with "make quick-install-man": LANG= make quick-install-man make -C Documentation quick-install-man make[1]: Entering directory `/git/git-1.6.1.3/Documentation' make -C ../ GIT-VERSION-FILE make[2]: Entering directory `/git/git-1.6.1.3' make[2]: `GIT-VERSION-FILE' is up to date. make[2]: Leaving directory `/git/git-1.6.1.3' sh ./install-doc-quick.sh origin/man /git/inst/share/man ./install-doc-quick.sh: line 9: /git/inst/libexec/git-sh-setup: No such file or directory make[1]: *** [quick-install-man] Error 1 make[1]: Leaving directory `/git/git-1.6.1.3/Documentation' make: *** [quick-install-man] Error 2
Regards, Ulrich Windl