Gnus development mailing list
 help / color / mirror / Atom feed
From: "Stephen J. Turnbull" <stephen@xemacs.org>
To: Ted Zlatanov <tzz@lifelogs.com>
Cc: ding@gnus.org, emacs-devel@gnu.org
Subject: Re: The Gnus repository is switching to Git as of 2010-04-19
Date: Wed, 21 Apr 2010 12:31:03 +0900	[thread overview]
Message-ID: <8739ypmqh4.fsf@uwakimon.sk.tsukuba.ac.jp> (raw)
In-Reply-To: <87mxwxmxvg.fsf@lifelogs.com>

Ted Zlatanov writes:

 > I don't like the way submodules work.  They are good for independent,
 > fairly static externals but for synchronizing two repositories I think
 > they'll be a pain.

Sure, but you're in for pain anyway since Gnus is a subset of Emacs,
not a subtree.  That is, Gnus-maintained features are spread across
several subdirectories of Emacs, while those Emacs subdirectories also
contain non-Gnus content.  Gnus contains lisp and etc directories
directly, while (I presume) Emacs contains lisp/gnus and etc/gnus
directories.

I can think of several ways to deal with this, but none of them are
very attractive.  Of them, I personally would use git submodules
because even though I'm sure I'd screw them up occasionally, there
would be an exact record of how they got screwed up.  The precise
semantics of submodules makes the task eminently scriptable, too, so
I would expect not to make the same mistake twice.[1]  YMMV<wink>

*What I would do if I were you* is lobby for a new subtree, "packages",
of the Emacs tree, and just plop Gnus into that, with its Lisp and
support files all under packages/gnus.  Add a make rule which puts
appropriate Gnus autoloads into the loaddefs or whatever Emacs uses,
to find Gnus' Lisp and data in there.  (Directory symlinks would work,
as in XEmacs' "symlink farm installation" option, but aren't
acceptable as long as systems that can't symlink easily are
supported.)  The way you're going, you're just making the same mistake
XEmacs made with its package system (having the installed tree look
different from the source tree), except that you're going to have more
pain than we do because of the possibility of shooting off both your
feet.  XEmacs packages has only one source tree, so even though the
installed structure is different from the source structure, at least
all the hackers are on the same page.  This isn't going to be true for
Gnus.

 > There's some unpleasant caveats at
 > http://book.git-scm.com/5_submodules.html plus they are really easy
 > to screw up.

Sure.  It will be work to make them work.  But I'm fairly sure you can
do it.  My point in replying to Stefan is that there's no standard way
to do it in Bazaar yet, and the chances are high that the standard,
when it appears, will yank the rug out from under existing practice.

 > SJT> Maybe.  I worry about ghost revisions appearing when you do a git->bzr
 > SJT> sync, and that's where they are most likely since git users branch
 > SJT> with abandon then abandon the branches, while it's no fun to try to
 > SJT> work with Bazaar that way.  Note that ghost revisions causes nasty
 > SJT> bugs in bzr as recently as a few weeks ago.
 > 
 > Using git-bzr from http://github.com/kfish/git-bzr, it seems you can
 > only push to a single branch, will that still cause problems?  I think
 > the Gnus repository is pretty unlikely to branch with abandon, in any
 > case.

Visibly, no.  But you have no control at all over what your developers
do privately.  Once merged and pushed, those branches have no names in
the public repository, but they still exist there!

I don't understand how ghost revisions (revisions referenced as
parents by revisions in the repo, but which themselves are not present
in the repo) can exist at all in a DAG-based system.  One may hope
that because git doesn't permit that, they won't exist in the bzr
mirror of your git tree, and that's actually probably a good bet.  But
I can't say it can't happen; it's your privilege to place your bets
here.<wink>

 > If Yidong, Stefan, and others are concerned about ghost revisions, we
 > can simply prepare the Gnus -> Emacs synchronization as a patch and
 > submit it through the usual channels or apply it manually ourselves in
 > isolation within Bazaar.  This will probably be the modus operandi at
 > first anyhow.

Yup.

Footnotes: 
[1]  NB. the synch tree would be owned by a special user, and only the
update scripts would be allowed to touch it.






  reply	other threads:[~2010-04-21  3:31 UTC|newest]

Thread overview: 47+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-04-19 17:34 Ted Zlatanov
2010-04-19 18:21 ` Sivaram Neelakantan
2010-04-19 19:13   ` Ted Zlatanov
2010-04-21  8:50     ` Steinar Bang
2010-04-21  9:01       ` David Engster
2010-04-21  9:02         ` David Engster
2010-04-21 10:05       ` Andreas Schwab
2010-04-21 12:12         ` Andreas Schwab
2010-04-21 14:10           ` Ted Zlatanov
2010-04-21 14:54             ` Andreas Schwab
2010-04-23  0:55               ` Ted Zlatanov
2010-04-22  8:12           ` Steinar Bang
2010-04-19 19:17   ` Sven Joachim
2010-04-20 13:03 ` Harry Putnam
2010-04-20 13:29   ` Ted Zlatanov
2010-04-20 13:57   ` Andreas Schwab
     [not found] ` <jwvr5mb8evr.fsf-monnier+emacs@gnu.org>
2010-04-20 13:55   ` Ted Zlatanov
2010-04-20 15:00     ` Stefan Monnier
2010-04-20 20:05       ` Ted Zlatanov
2010-04-20 22:28         ` Stefan Monnier
2010-04-20 23:44           ` Ted Zlatanov
2010-04-21  3:16             ` Stefan Monnier
2010-04-21 11:03               ` Gnus Git synchronization with Emacs Bazaar (was: The Gnus repository is switching to Git as of 2010-04-19) Ted Zlatanov
2010-04-22  2:24                 ` Stephen J. Turnbull
2010-04-21  0:33           ` The Gnus repository is switching to Git as of 2010-04-19 Stephen J. Turnbull
2010-04-21  0:51             ` Ted Zlatanov
2010-04-21  3:31               ` Stephen J. Turnbull [this message]
2010-04-21  3:11             ` Stefan Monnier
2010-04-21  4:00               ` Stephen J. Turnbull
2010-04-21  9:01           ` Andreas Schwab
2010-04-21  2:59         ` Teemu Likonen
2010-04-21 11:30           ` Ævar Arnfjörð Bjarmason
2010-04-21 14:57             ` Teemu Likonen
2010-04-21 16:36               ` Ævar Arnfjörð Bjarmason
2010-04-23  1:09         ` cgit beautification (was: The Gnus repository is switching to Git as of 2010-04-19) Ted Zlatanov
2011-02-25 22:04           ` cgit beautification Ted Zlatanov
2011-02-25 22:56             ` Adam Sjøgren
2011-02-25 23:19             ` Adam Sjøgren
2011-02-26 12:05               ` Lars Ingebrigtsen
2011-03-01 10:27               ` Ted Zlatanov
2011-03-01 10:30                 ` Ted Zlatanov
2011-03-01 11:31                   ` Adam Sjøgren
2011-03-01 13:32                     ` Ted Zlatanov
2011-03-01 17:08                       ` Adam Sjøgren
2011-03-02 11:05                         ` Ted Zlatanov
2010-04-22  5:49     ` The Gnus repository is switching to Git as of 2010-04-19 Harry Putnam
2010-04-23  0:36       ` Ted Zlatanov

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=8739ypmqh4.fsf@uwakimon.sk.tsukuba.ac.jp \
    --to=stephen@xemacs.org \
    --cc=ding@gnus.org \
    --cc=emacs-devel@gnu.org \
    --cc=tzz@lifelogs.com \
    /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).