From: Brandon Casey <casey@nrlssc.navy.mil>
To: Dmitry Potapov <dpotapov@gmail.com>
Cc: Junio C Hamano <gitster@pobox.com>, git@vger.kernel.org
Subject: Re: [ANNOUNCE] GIT 1.5.5.1
Date: Tue, 22 Apr 2008 12:37:44 -0500 [thread overview]
Message-ID: <480E2268.6050907@nrlssc.navy.mil> (raw)
In-Reply-To: <20080422005556.GC2631@dpotapov.dyndns.org>
Dmitry Potapov wrote:
> On Mon, Apr 21, 2008 at 07:23:10PM -0500, Brandon Casey wrote:
>> Dmitry Potapov wrote:
>>
>>> Johannes' patch removed this option, which IMHO was a significant user
>>> interface improvement.
>> Unless I missed something, this option has not been removed. The original
>> purpose for its existence (which was to cause git-gc to call git-prune)
>> has been removed. The call to git-prune within git-gc will remove _loose_
>> unreferenced objects, but _packed_ unreferenced objects are removed by
>> repack. The --prune option to git-gc is still used to adjust the call to
>> git-repack so that packed unreferenced objects are discarded.
>
> I thought that it had no effect any more, because it had been removed
> from the git-gc man page. Now I have looked at the code now, and it seems
> the difference between running git gc with and without the prune option
> is that with this option the git repack is called with '-a' option while
> without it with '-A'. Unfortunately, the '-A' option in the git-repack
> is also undocumented, but based on the reading git-repack.sh, you are
> right. So, now I wonder wether removing the --prune option from the man
> page was the right thing to do.
>
>>> diff --git a/Documentation/git-clone.txt b/Documentation/git-clone.txt
>>> index 9758243..c1bf814 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 a branch or use
>>> +any other git command that makes any previous existing commit
>>> +unreachable, then after some time linkgit:git-gc[1] may remove
>>> +unreachable objects, and this will break the cloned repository.
>>> +Because some git commands may run git-gc, it may happen at any
>>> +time after gc.pruneExpire time since commits became unreachable.
>> I agree that something should be said here about shared repositories,
>> but I think this wording is a little complicated (disclosure: I also
>> submitted some text for this a few weeks ago :). Of course something
>> is better than nothing.
>>
>> Here's the blurb I submitted if you're interested:
>> +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.
>
> I like your wording better though I still prefer to mention that
> deleting branches is just one of many possible commands that may
> create unreferenced commits, i.e. something like that:
>
> ... repository using this option and then delete branches (or use any
> other git command that makes any existing commit unreferenced) ...
That's fine, but one of us needs to resubmit. Care to do the honors? :)
-brandon
next prev parent reply other threads:[~2008-04-22 17:39 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-04-21 22:48 [ANNOUNCE] GIT 1.5.5.1 Junio C Hamano
2008-04-21 23:56 ` Dmitry Potapov
2008-04-22 0:23 ` Brandon Casey
2008-04-22 0:55 ` Dmitry Potapov
2008-04-22 17:37 ` Brandon Casey [this message]
2008-04-22 20:22 ` Dmitry Potapov
2008-04-22 7:03 ` Johannes Sixt
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=480E2268.6050907@nrlssc.navy.mil \
--to=casey@nrlssc.navy.mil \
--cc=dpotapov@gmail.com \
--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;
as well as URLs for NNTP newsgroup(s).