From: Konstantin Khomoutov <flatworm@users.sourceforge.net>
To: Alexey Muranov <alexey.muranov@gmail.com>
Cc: Jeff King <peff@peff.net>, git@vger.kernel.org
Subject: Re: Feature request: fetch --prune by default
Date: Thu, 19 Jul 2012 21:34:38 +0400 [thread overview]
Message-ID: <20120719213438.1cc7ca77a9cb3367a3be0539@domain007.com> (raw)
In-Reply-To: <88300470-AB41-4317-8B97-81DC18FD5899@gmail.com>
On Thu, 19 Jul 2012 18:21:21 +0200
Alexey Muranov <alexey.muranov@gmail.com> wrote:
[...]
> I do not still understand very well some aspects of Git, like the
> exact purpose of "remote tracking branches" (are they for pull or for
> push?), so i may be wrong.
This is wery well explained in the Pro Git book, for instance.
And in numerous blog posts etc.
> However, i thought that a user was not
> expected to follow the moves of a remote branch of which the user is
> not an owner: if the user needs to follow the brach and not lose its
> commits, he/she should create a remote tracking branch.
This would present another namespacing issue: how would you name the
branches you're interested in so that they don't clash with your own
personal local branches? You'd have to invent a scheme which would
encode the remote's name in a branch name. But remote branches already
do just this. So you create a remote tracking branch when you intend
to actually *develop* something on that branch with the final intention
to push that work back.
> > So I think it would be a lot more palatable if we kept reflogs on
> > deleted branches. That, in turn, has a few open issues, such as how
> > to manage namespace conflicts (e.g., the fact that a deleted "foo"
> > branch can conflict with a new "foo/bar" branch).
>
> I prefer to think of a remote branch and its local copy as the same
> thing, which are physically different only because of current real
> world/hardware/software limitations, which make it necessary to keep
> a local cache of remote data. With this approach, reflogs should be
> deleted with the branch, and there will be no namespace conflicts.
It appears, the distributed nature of a DVCS did not fully sink into
your mindset yet. ;-)
Looks like you mentally treat a Git remote as a thing being used to
access a centralized "reference" server which maintains a master copy
of a repository, of which you happen to also have a local copy.
Then it's quite logically to think that if someone deleted a branch in
the master copy, everyone "downstream" should have the same
remote branch deleted to be in sync with that master copy.
But this is not the only way to organize your work.
You could fetch from someone else's repository and be interested in
their branch "foo", but think what happens when you fetch next time from
that repo and see Git happily deleting your local branch thatremote/foo
simply because someone with push access deleted that branch from the
repo. This might *not* be what you really want or expect.
next prev parent reply other threads:[~2012-07-19 17:34 UTC|newest]
Thread overview: 73+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-07-19 7:30 Feature request: fetch --prune by default Alexey Muranov
2012-07-19 11:55 ` Jeff King
2012-07-19 14:03 ` Dan Johnson
2012-07-19 15:11 ` Stefan Haller
2012-08-16 23:22 ` Junio C Hamano
2012-08-21 6:51 ` Jeff King
2013-06-20 19:22 ` Sam Roberts
2012-07-19 16:21 ` Alexey Muranov
2012-07-19 17:34 ` Konstantin Khomoutov [this message]
2012-07-19 21:20 ` Alexey Muranov
2012-07-19 21:57 ` Alexey Muranov
2012-07-20 7:11 ` Johannes Sixt
2012-07-20 7:28 ` Alexey Muranov
2012-08-16 23:27 ` Junio C Hamano
2012-07-19 16:40 ` Alexey Muranov
2012-07-19 16:48 ` Dan Johnson
2012-07-19 16:51 ` Alexey Muranov
2012-07-19 21:32 ` [RFC/PATCH 0/3] reflog graveyard Jeff King
2012-07-19 21:33 ` [PATCH 1/3] retain reflogs for deleted refs Jeff King
2012-07-19 22:23 ` Alexey Muranov
2012-07-20 14:26 ` Jeff King
2012-07-20 14:32 ` Alexey Muranov
2012-07-19 22:36 ` Junio C Hamano
2012-07-20 14:43 ` Jeff King
2012-07-20 15:07 ` Jeff King
2012-07-20 15:39 ` Junio C Hamano
2012-07-20 15:42 ` Junio C Hamano
2012-07-20 15:50 ` Jeff King
2012-08-16 23:29 ` Junio C Hamano
2012-07-20 9:49 ` Michael Haggerty
2012-07-20 15:44 ` Jeff King
2012-07-20 16:37 ` Johannes Sixt
2012-07-20 17:09 ` Jeff King
2012-07-22 11:03 ` Alexey Muranov
2012-07-26 12:47 ` Nguyen Thai Ngoc Duy
2012-07-26 16:26 ` Alexey Muranov
2012-07-26 16:41 ` Matthieu Moy
2012-07-26 16:59 ` Jeff King
2012-07-26 17:24 ` Alexey Muranov
2012-07-26 17:46 ` Junio C Hamano
2012-07-26 17:52 ` Jeff King
2012-07-22 11:10 ` Alexey Muranov
2012-07-22 11:12 ` Alexey Muranov
2012-07-22 13:14 ` Jeff King
2012-07-22 14:40 ` Alexey Muranov
2012-07-22 15:50 ` Jeff King
2012-07-20 16:32 ` Johannes Sixt
2012-08-18 17:14 ` [RFC 0/3] Reflogs for deleted refs: fix breakage and suggest namespace change mhagger
2012-08-18 17:14 ` [RFC 1/3] t9300: format test in modern style prior to modifying it mhagger
2012-08-18 17:14 ` [RFC 2/3] Delete reflogs for dead references to allow pruning mhagger
2012-08-21 8:33 ` Jeff King
2012-08-18 17:14 ` [RFC 3/3] Change naming convention for the reflog graveyard mhagger
2012-08-18 20:39 ` [RFC 0/3] Reflogs for deleted refs: fix breakage and suggest namespace change Junio C Hamano
2012-08-18 21:11 ` Alexey Muranov
2012-08-19 0:02 ` Junio C Hamano
2012-08-19 7:07 ` Alexey Muranov
2012-08-19 7:15 ` Alexey Muranov
2012-08-19 11:28 ` Alexey Muranov
2012-08-19 17:38 ` Junio C Hamano
2012-08-19 22:09 ` Alexey Muranov
2012-08-20 0:26 ` Junio C Hamano
2012-08-20 1:01 ` Junio C Hamano
2012-08-20 11:32 ` Alexey Muranov
2012-08-20 11:57 ` Alexey Muranov
2012-08-19 13:19 ` Michael Haggerty
2012-08-19 16:27 ` Junio C Hamano
2012-08-21 8:27 ` Jeff King
2012-08-21 17:56 ` Junio C Hamano
2012-07-19 21:33 ` [PATCH 2/3] teach sha1_name to look in graveyard reflogs Jeff King
2012-07-19 22:39 ` Junio C Hamano
2012-07-20 15:53 ` Jeff King
2012-07-22 20:53 ` Junio C Hamano
2012-07-19 21:33 ` [PATCH 3/3] add tests for reflogs of deleted refs Jeff King
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=20120719213438.1cc7ca77a9cb3367a3be0539@domain007.com \
--to=flatworm@users.sourceforge.net \
--cc=alexey.muranov@gmail.com \
--cc=git@vger.kernel.org \
--cc=peff@peff.net \
/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).