all messages for Emacs-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
From: David Kastrup <dak@gnu.org>
To: emacs-devel@gnu.org
Subject: Re: Multiple checkout copies
Date: Tue, 03 Feb 2015 19:53:26 +0100	[thread overview]
Message-ID: <87zj8u25eh.fsf@fencepost.gnu.org> (raw)
In-Reply-To: <87bnlahmpf.fsf@violet.siamics.net> (Ivan Shmakov's message of "Tue, 03 Feb 2015 18:30:36 +0000")

Ivan Shmakov <ivan@siamics.net> writes:

>>>>>> David Kastrup <dak@gnu.org> writes:
>>>>>> Ivan Shmakov <ivan@siamics.net> writes:
>>>>>> David Kastrup <dak@gnu.org> writes:
>
> […]
>
>  >>> No, it isn't.  You can have both local branches and remote branches
>  >>> removed from the cloned bare repo while your --shared clone still
>  >>> uses objects that are no longer retained in the first clone.
>
>  >> “Can” in the sense that you /can/ use Git to shoot yourself in the
>  >> foot, or are there cases where git-fetch(1) would indeed autoremove
>  >> any branch references from a bare repository?
>
>  > If you want to mirror the upstream, you'll use "git fetch -p" in
>  > order to have branches that are removed upstream to get deleted in
>  > the mirror as well.
>
> 	And why would I want that,

In order not to accumulate temporary branches that are no longer present
in upstream?

> 	especially given that I’m already aware that a. some of the
> 	objects may be used elsewhere (and thus such an operation would
> 	be potentially unsafe) and b. the packs received from the remote
> 	are likely to contain a mix of Git objects belonging to both
> 	removed and extant branches,

Why would they?

> 	and it would thus /not/ be possible to remove them anyway?
>
> 	And as for repacking such a mirror from time to time, — it’s
> 	going to be a sure nuisance due to backup reasons, etc.

Uh, it's going to get repacked anyway.  Git does that without asking.

>  > Even without -p, references in frequently rewritten work branches
>  > (like Git's pu or next branches) will disappear eventually.
>
> 	Do fast-forward updates (which git-fetch(1) defaults to) ever
> 	result in dangling Git objects?

Maybe it would be worth checking the man pages before making such
statements.  It's just annoying when people spray arbitrary statements
to the list and leave it to others to clean up.

git-fetch does not merge in any manner and consequently also does not
"fast-forward".  It updates references after making them backed by the
respective objects.  You are confusing this with the git-pull action of
updating a local branch based on a remote-tracking branch.

There is a very limited situation when using explicit branch names for
source and target branch where git-fetch will only update a reference to
a non-descendant when given the option -f.  Since there is no way to
trigger a "slow forward" (also known as "merge") without involving the
work directory and index, this is neither the same as a fast forward,
nor referenced as such.

> 	Also, I’m typically interested in mirroring just a few branches
> 	(mostly ‘master’ and the latest stable, if any.)  Per my
> 	experience, such branches rarely (if ever) get “rewritten.”

"I'm typically interested in" is no base for promoting problematic
workflows since it violates the "do not use it unless you understand
what it does" dictum for the recipient of such a recipe.

-- 
David Kastrup



  reply	other threads:[~2015-02-03 18:53 UTC|newest]

Thread overview: 31+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-02-01 20:34 Multiple checkout copies Richard Stallman
2015-02-01 21:43 ` Paul Eggert
2015-02-02 13:35   ` Richard Stallman
2015-02-02 15:19     ` Elias Mårtenson
2015-02-03  1:10       ` Richard Stallman
2015-02-03  1:32         ` Paul Eggert
2015-02-03  8:40         ` David Kastrup
2015-02-02 17:42     ` Ivan Shmakov
2015-02-02 18:12       ` Ivan Shmakov
2015-02-03  1:10       ` Richard Stallman
2015-02-03  7:14         ` Ivan Shmakov
2015-02-03 10:02         ` Achim Gratz
2015-02-03 10:22           ` David Kastrup
2015-02-03 12:53             ` Achim Gratz
2015-02-03 13:15               ` David Kastrup
2015-02-03 13:37                 ` Ivan Shmakov
2015-02-03 13:57                   ` David Kastrup
2015-02-03 18:30                     ` Ivan Shmakov
2015-02-03 18:53                       ` David Kastrup [this message]
2015-02-03 19:17                         ` Ivan Shmakov
2015-02-03 19:41                           ` David Kastrup
2015-02-03 20:25                             ` Ivan Shmakov
2015-02-04 23:02                             ` Richard Stallman
2015-02-03 17:46         ` Stefan Monnier
2015-02-03 16:50 ` Steinar Bang
2015-02-03 17:05   ` David Kastrup
2015-02-03 22:55     ` Steinar Bang
2015-02-03 23:05   ` Richard Stallman
2015-02-04  8:48     ` Achim Gratz
2015-02-04  8:55       ` David Kastrup
2015-02-04 12:02       ` Ivan Shmakov

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=87zj8u25eh.fsf@fencepost.gnu.org \
    --to=dak@gnu.org \
    --cc=emacs-devel@gnu.org \
    /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.
Code repositories for project(s) associated with this external index

	https://git.savannah.gnu.org/cgit/emacs.git
	https://git.savannah.gnu.org/cgit/emacs/org-mode.git

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.