unofficial mirror of emacs-devel@gnu.org 
 help / color / mirror / code / Atom feed
From: "Stephen J. Turnbull" <stephen@xemacs.org>
To: Glenn Morris <rgm@gnu.org>
Cc: esr@thyrsus.com, emacs-devel@gnu.org
Subject: Re: Git transition checklist
Date: Thu, 09 Jan 2014 13:27:44 +0900	[thread overview]
Message-ID: <87y52pg4ov.fsf@uwakimon.sk.tsukuba.ac.jp> (raw)
In-Reply-To: <6pr48h52eq.fsf@fencepost.gnu.org>

Glenn Morris writes:

 > Can I replicate such a [bzr shared repo] setup?
 > How do I make a bound branch?

Replicate, no -- there are minor semantic differences.  Get space
savings and avoid network traffic when the object is available
locally, yes.  Bound branch, see Option 2 below.

DO NOT read the footnotes unless you are a git fan, if you're a bzr
kinda hacker your brain will explode.

Two ways to do it.  Both start by cloning the upstream repo

    cd $PARENT_DIRECTORY_FOR_EMACS_REPOS
    git clone $URL_TO_SAVANNAH_GIT_EMACS_TRUNK trunk

Option 1:

    # In same CWD as above:

    git clone --shared trunk ws1

Option 2:

    # In same CWD as above; [branch2] is an optional argument to
    # choose the named branch from trunk to check out.  It may be
    # irrelevant to the Emacs repo setup, I don't know.
    # The git-new-workdir script is in the git contrib directory, it's
    # not enabled by default.

    git new-workdir trunk ws2 [branch2]

CAVEAT for both options: DO NOT BLOW AWAY TRUNK!!  It is the
equivalent of the shared-repo's .bzr.

Difference between the options:

Option 1 is like a regular bzr branch: branch1's history is identical
to trunk up to the point of cloning, after that independent of trunk.

It is possible to switch the workspace to a different branch using
git-checkout, but that branch's history may not be complete unless you
pull it again from trunk.[1]

Option 2 has many similarities to a *local* bound branch.  *All*
history and branch configuration is shared.[2]  This has some glitches.

The obvious one is that it only works locally, so unlike a bzr bound
branch it's useless as an "automatically synced staging area for
pushes."  Almost as obvious, since HEAD is usually a pointer to a
branch ref (not to a commit), a commit in ws1 will advance HEAD in all
workspaces that have checked out the same branch.  This is usually not
what is wanted in a development workspace.

For more glitches, ask Stefan.  It's against my religion to believe in
glitches in git, so surely there aren't any more.

Now, you can make an informed choice.  Pick your poison!

I hereby license this text to all under the MIT/X license.  For a
signed paper copy, send me an SASE (110 yen).

Footnotes: 
[1]  Technically the history DAG is complete because the objects
directory is hardlinked in both GIT_DIRs, but the branch ref in ws1
does not advance with the branch ref of the same name in trunk.

[2]  Technically, the refs and .git/config as well as the DAG are shared.




  reply	other threads:[~2014-01-09  4:27 UTC|newest]

Thread overview: 132+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-01-08 13:52 Git transition checklist Eric S. Raymond
2014-01-08 14:59 ` Stefan Monnier
2014-01-08 16:35   ` Rüdiger Sonderfeld
2014-01-08 17:12     ` Stefan Monnier
2014-01-08 18:08       ` Rüdiger Sonderfeld
2014-01-08 18:21         ` Improved git commit emails [was Re: Git transition checklist] Glenn Morris
2014-01-08 18:31           ` Ted Zlatanov
2014-01-08 18:37             ` Improved git commit emails Glenn Morris
2014-01-08 21:04               ` Ted Zlatanov
2014-01-12  5:44                 ` Bob Proulx
2014-01-13  2:22                   ` Glenn Morris
2014-01-15  2:10                     ` Bob Proulx
2014-01-15  7:35                       ` Glenn Morris
2014-01-20  1:09                         ` Bob Proulx
2014-01-20  2:16                           ` Stephen J. Turnbull
2014-01-20  4:27                             ` Bob Proulx
2014-01-22 19:20                           ` Glenn Morris
2014-01-23 18:42                           ` Rüdiger Sonderfeld
2014-01-28 23:45                             ` Bob Proulx
2014-01-29  0:57                               ` Glenn Morris
2014-01-31  0:41                                 ` Bob Proulx
2014-01-08 16:48   ` Git transition checklist Eric S. Raymond
2014-01-08 17:19     ` Stefan Monnier
2014-01-08 18:43       ` Andreas Schwab
2014-01-08 19:02         ` Glenn Morris
2014-01-08 19:07           ` Eric S. Raymond
2014-01-08 19:17       ` Eric S. Raymond
2014-01-08 17:49     ` Glenn Morris
2014-01-08 18:02   ` Eli Zaretskii
2014-01-08 18:17     ` David Engster
2014-01-08 18:36       ` Eli Zaretskii
2014-01-08 19:07         ` Andreas Schwab
2014-01-08 19:16         ` David Engster
2014-01-08 18:41     ` Andreas Schwab
2014-01-08 18:48       ` Eli Zaretskii
2014-01-08 19:19         ` Andreas Schwab
2014-01-08 15:02 ` Stephen Berman
2014-01-08 16:26   ` Eric S. Raymond
2014-01-08 16:37     ` Git repack on Savannah [was: Re: Git transition checklist] James Cloos
2014-01-12  6:11       ` Bob Proulx
2014-01-12 15:59         ` Eli Zaretskii
2014-01-08 15:33 ` Git transition checklist Bastien
2014-01-08 16:19   ` Eric S. Raymond
2014-01-08 16:20     ` Bastien
2014-01-08 17:48     ` Glenn Morris
2014-01-08 18:15       ` Dani Moncayo
2014-01-08 18:22         ` Glenn Morris
2014-01-08 18:23       ` Andreas Schwab
2014-01-08 18:26         ` Glenn Morris
2014-01-08 18:50           ` Stefan Monnier
2014-01-08 19:00             ` Glenn Morris
2014-01-08 19:41               ` Stefan Monnier
2014-01-08 19:11           ` Andreas Schwab
2014-01-08 19:16             ` Glenn Morris
2014-01-08 19:46               ` Stefan Monnier
2014-01-08 23:07               ` Dani Moncayo
2014-01-12 20:15     ` Bob Proulx
2014-01-13 10:50       ` Bastien
2014-01-08 15:34 ` Bastien
2014-01-08 16:13   ` Eric S. Raymond
2014-01-08 17:47 ` Glenn Morris
2014-01-08 20:02   ` Eric S. Raymond
2014-01-08 20:19     ` Eli Zaretskii
2014-01-08 21:10       ` Andreas Schwab
2014-01-09  0:54         ` James Cloos
2014-01-09  1:23           ` Rüdiger Sonderfeld
2014-01-09  6:38             ` Eli Zaretskii
2014-01-09  0:51       ` James Cloos
2014-01-09  1:36       ` Rüdiger Sonderfeld
2014-01-09  1:48         ` Rüdiger Sonderfeld
2014-01-09  6:41           ` Eli Zaretskii
2014-01-09 11:10             ` Andreas Schwab
2014-01-09 16:17               ` Eli Zaretskii
2014-01-09 16:45                 ` Rüdiger Sonderfeld
2014-01-09 17:44                   ` Eli Zaretskii
2014-01-09 11:53             ` Rüdiger Sonderfeld
2014-01-09  1:53       ` Glenn Morris
2014-01-09  2:13         ` Glenn Morris
2014-01-09 12:14           ` Eric S. Raymond
2014-01-09 14:55             ` Paul Eggert
2014-01-09 15:15               ` Eric S. Raymond
2014-01-09 15:24                 ` Juanma Barranquero
2014-01-09 16:45                   ` Eric S. Raymond
2014-01-09  2:12     ` Glenn Morris
2014-01-09  4:27       ` Stephen J. Turnbull [this message]
2014-01-09  7:05         ` Eli Zaretskii
2014-01-09  8:14           ` Stephen J. Turnbull
2014-01-09 11:22             ` Andreas Schwab
2014-01-09 14:30               ` Stephen J. Turnbull
2014-01-09 14:58                 ` David Kastrup
2014-01-09 16:58                 ` Eli Zaretskii
2014-01-09 18:46                   ` Stephen J. Turnbull
2014-01-09 19:03                     ` Eli Zaretskii
2014-01-09 19:40                       ` Óscar Fuentes
2014-01-09 19:47                         ` Eli Zaretskii
2014-01-09 20:12                           ` Óscar Fuentes
2014-01-09 20:17                             ` Glenn Morris
2014-01-09 20:29                             ` Eli Zaretskii
2014-01-09 21:49                               ` Óscar Fuentes
2014-01-10  6:38                                 ` Eli Zaretskii
2014-01-11  9:14                   ` Eli Zaretskii
2014-01-11 20:09                     ` Glenn Morris
2014-01-11 20:32                       ` David Kastrup
2014-01-12 10:30                         ` Jorgen Schaefer
2014-01-13 22:34                           ` Barry Warsaw
2014-01-13 17:06                       ` Glenn Morris
2014-01-13 17:50                         ` David Kastrup
2014-01-14 17:05                           ` Richard Stallman
2014-01-09 15:12         ` Stefan Monnier
2014-01-09 15:33           ` Andreas Schwab
2014-01-08 18:14 ` Eli Zaretskii
2014-01-08 18:29   ` Glenn Morris
2014-01-08 18:39     ` Eli Zaretskii
2014-01-08 18:46       ` Eli Zaretskii
2014-01-08 20:17         ` David Kastrup
2014-01-08 19:03     ` Andreas Schwab
2014-01-08 18:45   ` Achim Gratz
2014-01-08 18:52     ` Eli Zaretskii
2014-01-08 19:15       ` Achim Gratz
2014-01-08 19:00   ` Andreas Schwab
2014-01-08 20:11   ` Eric S. Raymond
2014-01-08 20:22     ` Eli Zaretskii
2014-01-08 20:28       ` Eric S. Raymond
2014-01-08 21:04         ` Eli Zaretskii
2014-01-08 21:26           ` Eric S. Raymond
2014-01-09  6:25             ` Eli Zaretskii
2014-01-08 21:47       ` David Kastrup
2014-01-08 20:52 ` Eli Zaretskii
2014-01-08 21:07   ` Stefan Monnier
2014-01-08 21:22     ` Eli Zaretskii
  -- strict thread matches above, loose matches on Subject: below --
2014-01-14 17:42 Angelo Graziosi
2014-01-15 12:29 ` Richard Stallman

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=87y52pg4ov.fsf@uwakimon.sk.tsukuba.ac.jp \
    --to=stephen@xemacs.org \
    --cc=emacs-devel@gnu.org \
    --cc=esr@thyrsus.com \
    --cc=rgm@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).