Thread (1 message) 1 message, 1 author, 2016-06-15

Re: [RFC 2/2] Automatically transform .git/{branches,remotes} into .git/config

From: Junio C Hamano <hidden>
Date: 2016-06-15 22:42:13

Johannes Schindelin [off-list ref] writes:
On Mon, 21 Nov 2005, Josef Weidendorfer wrote:
quoted
On Monday 21 November 2005 14:56, Johannes Schindelin wrote:
quoted
With this patch, git automatically extracts the information from 
.git/branches and .git/remotes, puts it into .git/config, and renames the 
directories to .git/branches.old and .git/remotes.old, respectively.
Please... don't trash .git/branches.
This is about Cogito, not about Git. You will render every repository cloned
with Cogito useless, as it expects a per-branch configuration with the same
name as heads.
I was aware that .git/branches was introduced by Pasky, but as it is 
handled in git-parse-remote.sh, I thought that it may be a bit more 
general than just cogito.
What Josef said is correct in that I was not aware of the fact
that Cogito branches/ are *per-branch* configuration when I did
parse-remote.  remotes/ are deliberately *per-remote*
configuration, because it is more efficient when you are
downloading more than one refs from the same remote over a
git-aware protocol.  Arguably, it is optimizing for the wrong
case, because it may well be a minority case to keep track of
more than one remote head.  I dunno.

I am not sure if it is a good idea to automatically convert what
is stored in .git/branches to .git/remotes (or the equivalent of
the latter in .git/config), but if somebody wanted to do it, the
right thing would be:

 - grab the URL without optional fragment '#rembranch' part from
   all branches/* file;

 - group the ones that fetch from the same URL into one
   remotes/$file (what to call that file is very debatable
   because the original branches/* is in different namespace and
   we cannot tell what the user wants to call the remote),
   giving appropriate head mapping.  branches/$branch file with
   the fragment part '#$rembranch' translates to "Pull:
   $rembranch:$branch".
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help