unofficial mirror of emacs-devel@gnu.org 
 help / color / mirror / code / Atom feed
From: David Reitter <david.reitter@gmail.com>
To: Ted Zlatanov <tzz@lifelogs.com>
Cc: Andreas Schwab <schwab@linux-m68k.org>,
	"emacs-devel@gnu.org devel" <emacs-devel@gnu.org>
Subject: Re: Using Git to manage your Emacs changes
Date: Wed, 21 Apr 2010 14:12:36 -0400	[thread overview]
Message-ID: <4A1FFF2C-5794-4D58-B26B-07CD7FC0BB74@gmail.com> (raw)
In-Reply-To: <87aaswaf2t.fsf@lifelogs.com>

On Apr 21, 2010, at 1:30 PM, Ted Zlatanov wrote:
> 
> DR> What about the reliable, simple, wonderful git mirror at http://repo.or.cz/w/emacs.git ?
> 
> How reliable is it WRT recent commits?  Do they show up quickly or is
> there a manual process?  We're just discussing something similar
> concerning Gnus <-> Emacs synchronization so this could help us.

I find it very reliable.  As far as I know, it is updated manually and at least daily, so it is usually very current.  You should ask Andreas if there have been any problems with the conversion requiring manual intervention; if not, it could probably be automated and done hourly or so.  A big, big thank you from me for maintaining it.

The bigger issue with this is that the mirror isn't perfectly "official", which means that it could go away, or, worse, be rebased.  Essentially this happened when Emacs switched from CVS to Bzr, and the git mirror that we used to have on Savannah went away.  The new mirror wasn't compatible.

Re-basing is not an easy option for Aquamacs, due to multiple past merges.  Right now we're carrying around both histories (the old Git mirror and the new one).  So it's maybe 200.000 revisions.  Ultimately I might be able to rewrite it, but I'm waiting for the Git mirror to be automated.

Overall, working on my downstream project has been great with git.  Merges are fast and very reliable.  A git-pull from the Cz only takes a few seconds; same for the merge.  I set up to three branches for my project (Emacs 22 based, Emacs 23 based, and Emacs 24/trunk based).  The 23 one merges directly into the 24 one, and the 22 one cherry-picks bug-fixes (but not features) from the 23 one.  Where conflicts arise, I use "git mergetool" which fires up FileMerge (a wonderful graphical tool).  I use GitX occasionally to visualize some piece of history or search for a change.  GitX is slow with those 200k revisions.  I usually I use the command line or Emacs VC, especially for showing diffs, logs, and "git blame" (C-x v g).  I use the "git new-workdir" extension to keep multiple branches in parallel without having to have separate copies of the repository.

I have a "speed" complaint: when Emacs opens a file it does some status check with Git before actually displaying it (rather than in the background).  The first time, this takes a while.  Also,  on my old laptop, git-blame takes maybe 20 seconds on the large source files, which is unnecessary given that one usually just wants "blame" for a few lines of code.

Generally though, it's blazingly fast; I've had no strange error message from git so far, and I've had no incompatibilities with git versions or repositories either.  Where I make mistakes of my own with git, I can often "git reset --hard" to rewind my changes unless I've already pushed them to our server (github). 

I hope this helps you in some way; if you have questions, do get in touch privately.  I reckon most people here aren't too interested in this.



  reply	other threads:[~2010-04-21 18:12 UTC|newest]

Thread overview: 46+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-04-07 19:23 Using Git to manage your Emacs changes John Wiegley
2010-04-07 19:32 ` David Reitter
2010-04-07 20:25   ` John Wiegley
2010-04-07 21:22     ` David Reitter
2010-04-21 17:30   ` Ted Zlatanov
2010-04-21 18:12     ` David Reitter [this message]
2010-04-21 19:29       ` John Wiegley
2010-04-21 20:42         ` Eli Zaretskii
2010-04-22  7:17           ` John Wiegley
2010-04-22  9:41             ` Lennart Borgman
2010-04-22 10:28               ` Andreas Schwab
2010-04-22 11:09                 ` Lennart Borgman
2010-04-22 11:29                   ` Andreas Schwab
2010-04-22 16:20                     ` endless version control debates [was Re: Using Git to manage your Emacs changes] Glenn Morris
2010-04-22 17:02                       ` endless version control debates Óscar Fuentes
2010-04-22 17:07                       ` endless version control debates [was Re: Using Git to manage your Emacs changes] Leo
2010-04-22 17:52                         ` Chad Brown
2010-04-22 19:16                           ` Andreas Schwab
2010-04-22 20:09                             ` Chad Brown
2010-04-23  2:50                               ` endless version control debates Miles Bader
2010-04-22 20:16                           ` endless version control debates [was Re: Using Git to manage your Emacs changes] Leo
2010-04-22 20:46                             ` Eli Zaretskii
2010-04-22 21:10                             ` Jeff Clough
2010-04-22 10:40               ` Using Git to manage your Emacs changes Miles Bader
2010-04-23  8:38                 ` Juri Linkov
2010-04-23  9:29                   ` Ævar Arnfjörð Bjarmason
2010-04-24 13:20                   ` Richard Stallman
2010-04-24 15:27                     ` Jason Earl
2010-04-24 15:45                       ` Ævar Arnfjörð Bjarmason
2010-04-24 17:10                       ` Alfred M. Szmidt
2010-04-24 19:33                         ` Jason Earl
2010-04-24 20:33                           ` Alfred M. Szmidt
2010-04-24 20:36                           ` Eli Zaretskii
2010-04-24 21:54                             ` Jason Earl
2010-04-25  8:26                             ` Stephen J. Turnbull
2010-04-27 20:59                             ` Karl Fogel
2010-04-25 16:47                           ` Georg Brandl
2010-04-26 14:33                       ` Richard Stallman
2010-04-26 17:35                         ` Eli Zaretskii
2010-04-21 22:16         ` Andreas Schwab
2010-04-07 20:53 ` Giuseppe Scrivano
2010-04-07 20:37   ` Thierry Volpiatto
2010-04-08 22:27     ` John Wiegley
2010-04-08 22:43       ` Jonas Bernoulli
2010-04-09  6:04       ` Thierry Volpiatto
2010-04-08 16:57 ` Ken Raeburn

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=4A1FFF2C-5794-4D58-B26B-07CD7FC0BB74@gmail.com \
    --to=david.reitter@gmail.com \
    --cc=emacs-devel@gnu.org \
    --cc=schwab@linux-m68k.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.
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).