All of lore.kernel.org
 help / color / mirror / Atom feed
* Scripts to use "bundles" for moving data between repositories
@ 2007-02-14 14:10 Mark Levedahl
  2007-02-14 14:10 ` [PATCH] git-bundle - bundle objects and references for disconnected transfer Mark Levedahl
                   ` (3 more replies)
  0 siblings, 4 replies; 32+ messages in thread
From: Mark Levedahl @ 2007-02-14 14:10 UTC (permalink / raw)
  To: git

I am working a project using git where we have many repositories on machines
that can never be directly connected, but which need to have the same objects
and development history.  Existing git protocols offer limited support: we can
either a) publish and apply patch files branch by branch, or b) copy an entire
repository from one machine to another and then do local push or fetch.  While
both are workable, neither is a completely satisfactory solution, so I wrote the
attached scripts that support a "bundle" transfer mechanism.  A bundle is a zip
archive having two files: a list of references as given by git-show-ref and a
pack file of objects from git-pack-objects.  git-bundle creates the bundle,
git-unbundle unpacks and applies at the receiving end.  The means of
transporting the bundle file between the machines is arbitrary (sneaker net,
email, etc all can work).

This transfer protocol leaves it to the user to assure that the objects in the 
bundle are sufficient to update the target machine.  This is a direct 
consequence of the prohibition on direct communication between the machines.  
The approach supported here is to use normal git-rev-list format to specify what 
to include, e.g.  master~10..master, or ^master pu next, etc.  Having too many 
objects in the pack file is fine: git-unpack-objects at the receiving end 
happily ignores things not needed. git-unbundle normally checks that the updated 
references are fast-forward (--force to override), and that all required objects 
exist (--shallow to override). This latter option supports a disconnected 
shallow clone.

I offer this for inclusion in the main distribution, comments and suggestions
for improvement are welcome regardless. The scripts are working for me today
and I find them very useful.

Mark Levedahl

^ permalink raw reply	[flat|nested] 32+ messages in thread

end of thread, other threads:[~2007-02-16  3:24 UTC | newest]

Thread overview: 32+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2007-02-14 14:10 Scripts to use "bundles" for moving data between repositories Mark Levedahl
2007-02-14 14:10 ` [PATCH] git-bundle - bundle objects and references for disconnected transfer Mark Levedahl
2007-02-14 14:10   ` [PATCH] git-unbundle - unbundle " Mark Levedahl
2007-02-14 14:10     ` [PATCH] Create a man page for git-bundle Mark Levedahl
2007-02-14 14:10       ` [PATCH] Create a man page for git-unbundle Mark Levedahl
2007-02-14 19:45     ` [PATCH] git-unbundle - unbundle objects and references for disconnected transfer Shawn O. Pearce
2007-02-14 20:57       ` Mark Levedahl
2007-02-14 21:03         ` Shawn O. Pearce
2007-02-14 22:43           ` Mark Levedahl
2007-02-14 21:18         ` Nicolas Pitre
2007-02-14 19:42   ` [PATCH] git-bundle - bundle " Shawn O. Pearce
2007-02-14 21:58   ` Johannes Schindelin
2007-02-14 23:19     ` Mark Levedahl
2007-02-14 23:55       ` Mark Levedahl
2007-02-15  0:15         ` Johannes Schindelin
2007-02-15  2:13           ` Mark Levedahl
2007-02-15 15:35             ` Johannes Schindelin
2007-02-15  0:07       ` Johannes Schindelin
2007-02-15  2:32         ` Mark Levedahl
2007-02-15 15:32           ` Johannes Schindelin
2007-02-16  0:12             ` Mark Levedahl
2007-02-16  0:40               ` Johannes Schindelin
2007-02-16  3:23                 ` Mark Levedahl
2007-02-14 14:13 ` Scripts to use "bundles" for moving data between repositories Matthieu Moy
2007-02-14 14:37   ` Mark Levedahl
2007-02-14 15:46 ` Johannes Schindelin
2007-02-14 17:11 ` Junio C Hamano
2007-02-14 17:56   ` Mark Levedahl
2007-02-14 18:00     ` Junio C Hamano
2007-02-14 21:24       ` Mark Levedahl
2007-02-14 21:26         ` Junio C Hamano
2007-02-14 18:20     ` Junio C Hamano

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.