author | Johannes Schindelin <Johannes.Schindelin@gmx.de> | |
Thu, 22 Feb 2007 00:59:14 +0000 (01:59 +0100) | ||
committer | Junio C Hamano <junkio@cox.net> | |
Fri, 23 Feb 2007 06:30:33 +0000 (22:30 -0800) | ||
commit | 2e0afafebd8c5a1a8cdddb0714073461229ecfef | |
tree | eba8a2fa0f5c7d5de4043141bd6ce33bb7b34034 | tree | snapshot |
parent | 437b1b20df4b356c9342dac8d38849f24ef44f27 | commit | diff |
Add git-bundle: move objects and references by archive
Some workflows require use of repositories on machines that cannot be
connected, preventing use of git-fetch / git-push to transport objects and
references between the repositories.
git-bundle provides an alternate transport mechanism, effectively allowing
git-fetch and git-pull to operate using sneakernet transport. `git-bundle
create` allows the user to create a bundle containing one or more branches
or tags, but with specified basis assumed to exist on the target
repository. At the receiving end, git-bundle acts like git-fetch-pack,
allowing the user to invoke git-fetch or git-pull using the bundle file as
the URL. git-fetch and git-ls-remote determine they have a bundle URL by
checking that the URL points to a file, but are otherwise unchanged in
operation with bundles.
The original patch was done by Mark Levedahl <mdl123@verizon.net>.
It was updated to make git-bundle a builtin, and get rid of the tar
format: now, the first line is supposed to say "# v2 git bundle", the next
lines either contain a prerequisite ("-" followed by the hash of the
needed commit), or a ref (the hash of a commit, followed by the name of
the ref), and finally the pack. As a result, the bundle argument can be
"-" now.
Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Signed-off-by: Junio C Hamano <junkio@cox.net>
Some workflows require use of repositories on machines that cannot be
connected, preventing use of git-fetch / git-push to transport objects and
references between the repositories.
git-bundle provides an alternate transport mechanism, effectively allowing
git-fetch and git-pull to operate using sneakernet transport. `git-bundle
create` allows the user to create a bundle containing one or more branches
or tags, but with specified basis assumed to exist on the target
repository. At the receiving end, git-bundle acts like git-fetch-pack,
allowing the user to invoke git-fetch or git-pull using the bundle file as
the URL. git-fetch and git-ls-remote determine they have a bundle URL by
checking that the URL points to a file, but are otherwise unchanged in
operation with bundles.
The original patch was done by Mark Levedahl <mdl123@verizon.net>.
It was updated to make git-bundle a builtin, and get rid of the tar
format: now, the first line is supposed to say "# v2 git bundle", the next
lines either contain a prerequisite ("-" followed by the hash of the
needed commit), or a ref (the hash of a commit, followed by the name of
the ref), and finally the pack. As a result, the bundle argument can be
"-" now.
Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Signed-off-by: Junio C Hamano <junkio@cox.net>
.gitignore | diff | blob | history | |
Documentation/cmd-list.perl | diff | blob | history | |
Documentation/git-bundle.txt | [new file with mode: 0644] | blob |
Makefile | diff | blob | history | |
builtin-bundle.c | [new file with mode: 0644] | blob |
builtin.h | diff | blob | history | |
git-fetch.sh | diff | blob | history | |
git-ls-remote.sh | diff | blob | history | |
git.c | diff | blob | history | |
index-pack.c | diff | blob | history | |
t/t5510-fetch.sh | diff | blob | history |