Subject: Re: Backing git repos to tape?

From: Jakub Narebski <[email-masked]>
Date: Sun, 25 Nov 2007 13:00:06 +0100

On Sun, 25 Nov 2007, Joakim Tjernlund wrote:
> Joakim Tjernlund wrote: 
>> Jakub Narebski wrote:
>>> Joakim Tjernlund wrote:
>>> 
>>>> Is there a preferred way to do the above?
>>>> 
>>>> To do a full backup I could just copy the whole repo, but how
>>>> do I do inrecmental backups(and restore)?
>>> 
>>> Try git-bundle. There were in the mailing list archive the recipe
>>> on how to do an "incremental" bundle...
>>> 
>>> ..ahh, there it is, by Johannes "Dscho" Schindelin:
>>> 
>>>         git bundle create retort.bundle --all \
>>>                 --not $(git ls-remote the-other.bundle | cut -c1-40)
>> 
>> Thanks, will look into git bundle

Please note however thatgit-bundle was created for easy and efficient
off-line (sneakernet) transport, not for backups of repositories.

Nevertheless it might be a good tool to use.
 
> Just did a
>   git ls-remote ./.
> in my linux repo and got a lot of ^{} in the printout.
> What do the ^{} mean?
>  
> ...
> 0b8bc8b91cf6befea20fe78b90367ca7b61cfa0d        refs/tags/v2.6.23
> 7d57c74238cdf570bca20b711b2c0b31a553c1e5        refs/tags/v2.6.23-rc1
> f695baf2df9e0413d3521661070103711545207a        refs/tags/v2.6.23-rc1^{}
[...]

----
git-rev-parse(1):

SPECIFYING REVISIONS
--------------------

A revision parameter typically, but not necessarily, names a
commit object.  They use what is called an 'extended SHA1'
syntax.  Here are various ways to spell object names.

[...]

* A suffix '^' followed by an empty brace pair
  (e.g. `v0.99.8^{}`) means the object could be a tag,
  and dereference the tag recursively until a non-tag object is
  found.

----

refs/tags/v2.6.23-rc1 is a ref which points to a _tag object_ 7d57c742...,
which in turn points to commit f695baf2...

-- 
Jakub Narebski
Poland