unofficial mirror of emacs-devel@gnu.org 
 help / color / mirror / code / Atom feed
From: "Stephen J. Turnbull" <stephen@xemacs.org>
To: Lars Magne Ingebrigtsen <larsi@gnus.org>
Cc: emacs-devel@gnu.org
Subject: Re: Rewriting bzrmerge.el
Date: Mon, 24 Nov 2014 00:11:12 +0900	[thread overview]
Message-ID: <87k32mrlyn.fsf@uwakimon.sk.tsukuba.ac.jp> (raw)
In-Reply-To: <m361e6f13l.fsf@stories.gnus.org>

Lars Magne Ingebrigtsen writes:

 > If there is a way to get two separate branches checked out at the same
 > time without doubling the disk spaces used, that would be nice.

How much more than "negligible" is unacceptable, and how long before
you cross that line is acceptable?

You see, git is not bzr or hg (yes, I know about bzr shared repos, but
my bzr setup with about 5 Emacs branches including trunk, emacs-24,
and emacs-23 uses about 3X as much space as my git repo with all Emacs
git branches in it).  Simply doing "git clone source-repo target-repo"
uses very little extra space (or time) at clone time because the
objects are hard-linked across directories by default.  Of course this
will tend to diverge over time because new commits often won't be
shared, and granularity may be a few MB due to packed objects.  Still,
given the amount of existing history in an Emacs repo
-- most of which will never be GC'd -- I'd be surprised if the extra
space took less than 5 years to reach 150MB (~50% of current Emacs
repos), and I wouldn't be surprised if it took 10 years.  (No, I don't
have any actual data.)

Also, the primary use case Eli talks about is doing synchs of stable
to trunk, and the occasional cherrypick in the other direction.  In
this case, the "trunk" repository will have a copy of the stable
branch, and in the unlikely case they diverge much, you can always
"repack" the "stable" repo by fetching stable-repo into trunk-repo,
then rm -rf and git clone a new stable-repo.  Most of the time is
taken up by rm -rf ....  Whether that hack works for your favorite
feature branches, I don't know (you might not want to pollute trunk
with them before they're ready), but it probably does.

I don't see any good reason for describing any other strategies than
"if you're worried about bootstrap times, just use a second clone from
your local trunk repo".  If somebody really runs into a space issue,
it's easy enough to explain how to reduce space usage.

 > The answer currently seems to be "use git-new-workdir"

This should work OK 99.44% of the time in Emacs workflows, but if the
new user gets frisky with rebasing or commit --amend etc, they *can*
shoot themselves in the foot.  If they do, they almost certainly will
break a private part of the repo that cannot be recovered from public
sources.  I don't think that's worth it, IMHO FWIW YMMV.




  parent reply	other threads:[~2014-11-23 15:11 UTC|newest]

Thread overview: 75+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-10-27  0:07 git transition issues Eric S. Raymond
2014-10-27  1:08 ` Stefan Monnier
2014-10-27  1:28   ` Eric S. Raymond
2014-10-27 13:10     ` Stefan Monnier
2014-10-28 15:35     ` Glenn Morris
2014-10-28 16:36       ` Eric S. Raymond
2014-10-28 18:01         ` Eli Zaretskii
2014-10-28 18:07           ` Eric S. Raymond
2014-10-28 18:19             ` Eli Zaretskii
2014-10-29  0:58               ` Stefan Monnier
2014-10-31  9:17                 ` Eli Zaretskii
2014-10-31 10:23                   ` Eric S. Raymond
2014-10-31 10:27                     ` Eli Zaretskii
2014-10-31 10:51                       ` Eric S. Raymond
2014-10-31 11:03                         ` Eli Zaretskii
2014-10-31 13:00                           ` Eric S. Raymond
2014-11-01  0:39                             ` Stephen J. Turnbull
2014-11-15 14:52   ` Rewriting bzrmerge.el (was: git transition issues) David Engster
2014-11-15 15:40     ` Rewriting bzrmerge.el Paul Eggert
2014-11-15 16:01       ` Stefan Monnier
2014-11-15 16:32       ` Eli Zaretskii
2014-11-15 16:04     ` Stefan Monnier
2014-11-15 16:10       ` David Engster
2014-11-15 16:26         ` David Engster
2014-11-16  3:50           ` Stefan Monnier
2014-11-21 22:47             ` David Engster
2014-11-22  8:16               ` Eli Zaretskii
2014-11-22 16:13                 ` David Engster
2014-11-22 16:42                   ` Eli Zaretskii
2014-11-22 17:17                     ` David Engster
2014-11-22 20:30                       ` Eli Zaretskii
2014-11-22 21:11                         ` David Engster
2014-11-23  3:35                           ` Eli Zaretskii
2014-11-23 16:32                           ` Steinar Bang
2014-11-23 17:49                             ` David Engster
2014-11-23 17:50                             ` Eli Zaretskii
2014-11-23 18:40                               ` Steinar Bang
2014-11-23 19:49                                 ` Eli Zaretskii
2014-11-22 22:28                         ` Stefan Monnier
2014-11-22 23:02                         ` Lars Magne Ingebrigtsen
2014-11-23  0:22                           ` Stephen J. Turnbull
2014-11-23  8:01                             ` David Kastrup
2014-11-23 16:08                               ` Eli Zaretskii
2014-11-23 16:29                                 ` Achim Gratz
2014-11-23 17:49                                   ` Eli Zaretskii
2014-11-23 16:29                                 ` David Kastrup
2014-11-23 16:42                                 ` Stephen J. Turnbull
2014-11-23 16:49                                   ` David Kastrup
2014-11-23 17:33                                   ` Eli Zaretskii
2014-11-23 16:41                               ` Steinar Bang
2014-11-23 14:22                             ` Lars Magne Ingebrigtsen
2014-11-23 15:08                               ` Ken Brown
2014-11-23 15:11                               ` Stephen J. Turnbull [this message]
2014-11-23 15:21                                 ` Lars Magne Ingebrigtsen
2014-11-24 15:11                                 ` Eli Zaretskii
2014-11-24 18:18                                   ` Stephen J. Turnbull
2014-11-24 18:26                                     ` Eli Zaretskii
2014-11-24 18:59                                       ` Stephen J. Turnbull
2014-11-24 19:06                                         ` Eli Zaretskii
2014-11-23  3:46                           ` Eli Zaretskii
2014-11-24  3:59                           ` Stefan Monnier
2014-11-24 13:09                             ` Eli Zaretskii
2014-11-22 15:57               ` Stefan Monnier
2014-11-23 17:18               ` David Engster
2014-11-15 16:26     ` Eli Zaretskii
2014-11-15 16:34       ` David Engster
2014-11-15 17:50         ` David Kastrup
2014-11-15 18:06           ` Eli Zaretskii
2014-11-15 18:20             ` David Kastrup
2014-11-15 20:02             ` David Engster
2014-10-27  1:42 ` git transition issues David Caldwell
2014-10-27  1:55   ` Eric S. Raymond
2014-10-28 15:33     ` Glenn Morris
2014-10-28 21:16   ` Randal L. Schwartz
2014-10-28 21:31     ` Randal L. Schwartz

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=87k32mrlyn.fsf@uwakimon.sk.tsukuba.ac.jp \
    --to=stephen@xemacs.org \
    --cc=emacs-devel@gnu.org \
    --cc=larsi@gnus.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).