unofficial mirror of emacs-devel@gnu.org 
 help / color / mirror / code / Atom feed
From: Ivan Shmakov <ivan@siamics.net>
To: emacs-devel@gnu.org
Subject: Re: Multiple checkout copies
Date: Tue, 03 Feb 2015 19:17:36 +0000	[thread overview]
Message-ID: <877fvyhkj3.fsf@violet.siamics.net> (raw)
In-Reply-To: <87zj8u25eh.fsf@fencepost.gnu.org> (David Kastrup's message of "Tue, 03 Feb 2015 19:53:26 +0100")

>>>>> David Kastrup <dak@gnu.org> writes:
>>>>> Ivan Shmakov <ivan@siamics.net> writes:
>>>>> David Kastrup <dak@gnu.org> writes:

[…]

 >>> 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?

	How would the branches “accumulate” in the case git-fetch(1) is
	given an explicit list of them to follow?

 >> 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?

	Because the development happens in several branches in parallel?

 >> 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.

	… Unless disabled with gc.auto = 0, gc.autopacklimit = 0.

 >>> 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.

	Well, would you then care to explain the wording of the Git
	error message below?

+ git fetch -t origin master:master
From git://github.com/XXX/XXX
 ! [rejected]        master     -> master  (non-fast-forward)

	Not to mention that git-fetch(1) explicitly uses this same term
	(as of Git 2.1.4.)

	I do not generally support the opinion that Git terminology is
	confusing, but I find it quite possible that it may sometimes be
	inconsistent at best.  Maybe it’s just such a case.

 > 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.

	Yes.

[…]

 >> 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.

	The whole idea behind this discussion is to clarify when
	--shared is reasonable, — and when it isn’t.  Isn’t it?

-- 
FSF associate member #7257  http://boycottsystemd.org/  … 3013 B6A0 230E 334A



  reply	other threads:[~2015-02-03 19:17 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
2015-02-03 19:17                         ` Ivan Shmakov [this message]
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

  List information: https://www.gnu.org/software/emacs/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=877fvyhkj3.fsf@violet.siamics.net \
    --to=ivan@siamics.net \
    --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 public inbox

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

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 read-only IMAP folder(s) and NNTP newsgroup(s).