From: Brandon Casey <casey@nrlssc.navy.mil>
To: Johannes Schindelin <Johannes.Schindelin@gmx.de>
Cc: Junio C Hamano <gitster@pobox.com>,
Git Mailing List <git@vger.kernel.org>
Subject: Re: [PATCH] git-clone.txt: Adjust note to --shared for new pruning behavior of git-gc
Date: Thu, 03 Apr 2008 15:51:14 -0500 [thread overview]
Message-ID: <47F54342.1040901@nrlssc.navy.mil> (raw)
In-Reply-To: <alpine.LSU.1.00.0804032113280.4008@racer.site>
Johannes Schindelin wrote:
> Hi,
>
> On Thu, 3 Apr 2008, Brandon Casey wrote:
>
>> diff --git a/Documentation/git-clone.txt b/Documentation/git-clone.txt
>> index 9758243..d3ab00b 100644
>> --- a/Documentation/git-clone.txt
>> +++ b/Documentation/git-clone.txt
>> @@ -65,10 +65,12 @@ OPTIONS
>> +
>> *NOTE*: this is a possibly dangerous operation; do *not* use
>> it unless you understand what it does. If you clone your
>> -repository using this option, then delete branches in the
>> -source repository and then run linkgit:git-gc[1] using the
>> -'--prune' option in the source repository, it may remove
>> -objects which are referenced by the cloned repository.
>> +repository using this option and then delete branches in the
>> +source repository, some objects may become unreferenced (or dangling).
>> +These objects may be removed by normal git operations (such as git-commit[1])
>> +which automatically call git-gc[1]. If these objects are removed and
>> +were referenced by the cloned repository, then the cloned repository
>> +will become corrupt.
>
> Please note that if you delete a branch _after_ running git-gc, the next
> git-gc would remove those objects anyway, since the first git-gc packed
> the objects, and they were therefore no longer dangling.
I thought they would be retained unless --prune was used. git-gc uses the
-A option to repack when --prune is not used and -a when --prune is used.
I think even with the new prune behavior they would still be retained as
long as they were packed since the prune only affects loose objects.
> So it was an issue before the new git-gc behaviour anyway.
Well, I thought that git-gc had become "safe" with respect to --shared
repositories ever since the call to repack started using -A when --prune
was not used.
Now it is unsafe again. But what I was really trying to point out in the
documentation changes was that now _other_ commands such as git-commit are
also unsafe since they call 'git-gc --auto' and could cause loose
unreferenced objects to be deleted. So it is not enough to just avoid calling
git-gc when dealing with a --shared repository.
-brandon
next prev parent reply other threads:[~2008-04-03 20:52 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-04-03 18:26 [PATCH] git-clone.txt: Adjust note to --shared for new pruning behavior of git-gc Brandon Casey
2008-04-03 19:14 ` Johannes Schindelin
2008-04-03 20:51 ` Brandon Casey [this message]
2008-04-03 20:01 ` Johannes Schindelin
2008-04-04 6:49 ` Jakub Narebski
2008-04-04 14:25 ` Brandon Casey
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=47F54342.1040901@nrlssc.navy.mil \
--to=casey@nrlssc.navy.mil \
--cc=Johannes.Schindelin@gmx.de \
--cc=git@vger.kernel.org \
--cc=gitster@pobox.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox