From: Mike Mattie <codermattie@gmail.com>
To: emacs-devel@gnu.org
Subject: Re: What a modern collaboration toolkit looks like
Date: Sat, 5 Jan 2008 18:14:07 -0800 [thread overview]
Message-ID: <20080105181407.6fa67306@reforged> (raw)
In-Reply-To: <jehchsjmb2.fsf@sykes.suse.de>
[-- Attachment #1.1: Type: text/plain, Size: 6701 bytes --]
On Sat, 05 Jan 2008 16:59:13 +0100
Andreas Schwab <schwab@suse.de> wrote:
> Richard Stallman <rms@gnu.org> writes:
>
> > Currently we recommend that people "build the source from CVS", and
> > we don't say "from the trunk" because that is a general convention
> > of CVS usage.
> >
> > If we used git, what convention would replace that?
>
> It's the same, basically. If you clone a git repository, your
> personal repository is automatically set up to track the default
> branch of the remote repository, which is normally the master branch.
>
> Andreas.
>
take a look at www.kernel.org. I use git for my linux tree.
I am what you would call the end-user in this case. My use is alot
simpler with git.
When a release is pending I check the changelogs via gitweb, do various
searches for hardware and sub-systems of interest. If I like what I see
I simply cut & paste the git url into a git-pull and merge the upstream
changes.
On a regular basis I pull from two branches, the first branch being the
official linus tree, the second is usually 2.6.x.y for patch releases.
Occasionally I need to debug a kernel problem with a pre-release. When
this happens if the developer for the sub-system is using git I can
pull fixes from his tree while we are diagnosing the problem. Once it
is fixed I don't have to revert the changes before I pull from the official
repo again, because the maintainer requests a pull from linus, it gets merged,
and git doesn't barf on previously merged changes.
In fact during this discussion I have noticed a key point that has not been mentioned.
If RMS is wondering how a project is lead with a distributed system the answer is
the convention of asking for a pull.
I don't think anyone "pushes" changes on Linus. When they have something that is in shape
for him to review they request via e-mail a pull and give the git URL. Linus is then
free to look through the history of their branch. He can see not just the work, but the history.
That includes all the changes, bugs, and features. By reading the history he can get a much
greater sense of how it developed, not just a diff. If he likes it, he pulls it. If not they
can keep at it and ask again later. When he pulls he gets the full history.
CVS is crippled in that there is no way to record changes before commit. I personally do
not like CVS like systems because it puts a huge burden on the developer that actually
works really hard to do a clean merge for review.
What I consider a clean merge for review to be is this: Broken up into changes where each
change can be described succinctly by a changelog, and the change must not break compile
or regress.
here is a little constrast sketch:
bad commit:
add subsystem foo , with new data structure bar, modifying existing code baz to use new data structure bar.
Good commit:
1. add new data structure bar
2. modify baz to use new data structure bar
3. add subsystem foo.
Notice how in the good commit the maintainer of baz can evaluate the new data structure without wading
through my new subsystem foo which he probably doesn't care about. If CVS and DVCS systems where compared
to writing CVS would not have topics or paragraphs, just one huge body of text. Changes in DVCS systems
can be broken up, like a body of text into paragraphs so that people can understand them better.
Because CVS cannot record changes in the working copy you have to do one of two things:
A. finish the entire work and publish as a single commit. This alternative is so broken you actually
have to backup your working copy changes yourself.
B. break the commit up into valid changes and try and maintain a diff series in the working copy
until you can submit the sequence. Again backing up yourself.
C. use a branch.
Of course people who use CVS will say C is an entirely valid option. It does work. But it discourages
casual development and definitely would discourage me. I don't like to make proposals without
code to show. Often until the code is fleshed out I don't have the facts to make a proposal.
With CVS I have to get a commit bit, get a branch (sounds like paperwork), and finally start
hacking away. I consider this high risk because I have to declare my success (proposal + commit bit + branch)
before I know if the idea will even work.
I would much rather hack away on any distributed VCS where I can pick the good idea from the dozens
of ideas that seemed good but did not pan out. When I would go to "request pull" or merge I can
show the entire history of the development.
DVCS are not perfect, but they at least make what I call a good commit possible without having to
do what I consider absurd labor. When I have to work on a project using CVS or even SVN I spend
a huge amount of time manually slicing and dicing diffs in diff mode. If anything goes wrong in
the diff sequence I am in big trouble so I also have to keep full copies at each "change point".
At that point It's not a reversion control system for me, it's just a publishing tool. All of
the changes have to be maintained by hand in diff-mode.
What I call good commits has two key points. It feeds changes incrementally for both review and
testing. Who wants to try and test a huge chunk of code dropped in a single commit ? Doing things
the right way usually pays off even in ways you don't anticipate, like git-bisect. I have personally
used that to track down a problem with a IDE driver. I found the broken changeset in something like six
reboots. The fix was in the Linus tree within days.
I don't think it works at all to try and describe git in terms of CVS. In fact dictating how you
merge by version control system is kinda supsect as well. The goal should be to turn in high
quality merges, incrementally reviewed, incrementally merged and tested. Any change that breaks
the compile or test-harness is sin plain and simple. If a project can't maintain that standard
with their tools then their tools are a problem. If the developers are so skilled at flaking
diffs from their working copy like cavemen flaking arrowheads from stone, then there is no
problem.
On the other hand if merging changes is a problem, then there is a *big* problem. I don't think
merging is something you do for release, it's something you do to integrate the work of a team.
If you can't merge you can't work together. If anything branching is for release, not development.
My 2 cents at least. Please don't take any offense from any of these statements. No person
or caricature was harmed in the writing of this mail.
Cheers,
Mike Mattie (peanut gallery)
[-- Attachment #1.2: signature.asc --]
[-- Type: application/pgp-signature, Size: 189 bytes --]
[-- Attachment #2: Type: text/plain, Size: 142 bytes --]
_______________________________________________
Emacs-devel mailing list
Emacs-devel@gnu.org
http://lists.gnu.org/mailman/listinfo/emacs-devel
next prev parent reply other threads:[~2008-01-06 2:14 UTC|newest]
Thread overview: 277+ messages / expand[flat|nested] mbox.gz Atom feed top
2007-12-30 12:22 What a modern collaboration toolkit looks like Eric S. Raymond
2007-12-30 15:32 ` Thien-Thi Nguyen
2007-12-30 15:42 ` Richard Stallman
2007-12-30 17:22 ` Eric S. Raymond
2007-12-30 20:25 ` Robert J. Chassell
2007-12-30 21:55 ` Nick Roberts
2007-12-30 22:25 ` Lennart Borgman (gmail)
2007-12-30 22:58 ` Richard Stallman
2007-12-30 22:58 ` Richard Stallman
2007-12-31 2:58 ` Eric S. Raymond
2007-12-31 12:14 ` Thien-Thi Nguyen
2008-01-01 23:57 ` John S. Yates, Jr.
2008-01-02 1:46 ` Thien-Thi Nguyen
2007-12-31 22:29 ` Richard Stallman
2008-01-01 0:19 ` Leo
2007-12-31 4:31 ` Eli Zaretskii
2007-12-31 13:07 ` Eric S. Raymond
2007-12-31 20:57 ` Eli Zaretskii
2007-12-31 21:41 ` Eric S. Raymond
2007-12-31 23:00 ` Nick Roberts
2008-01-01 0:50 ` Eric S. Raymond
2008-01-01 4:22 ` Eli Zaretskii
2008-01-01 6:20 ` Eric S. Raymond
2007-12-31 23:12 ` Eli Zaretskii
2008-01-01 0:27 ` Dan Nicolaescu
2008-01-01 3:00 ` Mike Mattie
2008-01-01 7:57 ` Drew Adams
2008-01-02 19:28 ` Agustin Martin
2008-01-03 9:50 ` Richard Stallman
2008-01-05 3:34 ` Mike Mattie
2008-01-06 8:09 ` Richard Stallman
2008-01-03 9:50 ` Richard Stallman
2008-01-01 20:44 ` Eli Zaretskii
2008-01-02 4:17 ` Dan Nicolaescu
2008-01-05 10:48 ` Eli Zaretskii
2008-01-01 0:57 ` Eric S. Raymond
2008-01-01 4:21 ` Eli Zaretskii
2008-01-01 0:10 ` Miles Bader
2008-01-01 1:06 ` Eric S. Raymond
2008-01-01 1:41 ` Miles Bader
2008-01-01 2:16 ` Eric S. Raymond
2008-01-01 19:43 ` Tom Tromey
2008-01-01 21:11 ` Nick Roberts
2008-01-02 0:25 ` Miles Bader
2008-01-02 1:12 ` Tom Tromey
2008-01-02 17:19 ` On-the-fly compiling (was Re: What a modern collaboration toolkit looks like) Mark A. Hershberger
2008-01-02 20:57 ` On-the-fly compiling Stefan Monnier
2008-01-02 22:33 ` Lennart Borgman (gmail)
2008-01-02 23:09 ` Tom Tromey
2008-01-02 9:53 ` What a modern collaboration toolkit looks like Richard Stallman
2008-01-01 11:28 ` Tassilo Horn
2008-01-01 20:36 ` Eli Zaretskii
2008-01-02 0:29 ` Miles Bader
2008-01-02 4:14 ` Eli Zaretskii
2008-01-02 4:33 ` Miles Bader
2008-01-02 8:24 ` Werner LEMBERG
2008-01-02 8:20 ` Tassilo Horn
2008-01-03 9:50 ` Richard Stallman
2008-01-03 13:15 ` Ævar Arnfjörð Bjarmason
2008-01-04 13:56 ` Stefan Monnier
2008-01-02 8:41 ` tomas
2008-01-03 9:50 ` Richard Stallman
2008-01-03 10:16 ` Miles Bader
2008-01-05 5:55 ` Richard Stallman
2008-01-05 6:59 ` Óscar Fuentes
2008-01-05 15:29 ` Eli Zaretskii
2008-01-05 19:53 ` Óscar Fuentes
2008-01-06 8:09 ` Richard Stallman
2008-01-05 8:55 ` David Kastrup
2008-01-05 9:55 ` Werner LEMBERG
2008-01-05 15:23 ` Eli Zaretskii
2008-01-05 15:31 ` Lars Magne Ingebrigtsen
2008-01-05 15:39 ` David Kastrup
2008-01-06 8:09 ` Richard Stallman
2008-01-06 9:51 ` tomas
2008-01-06 11:02 ` David Kastrup
2008-01-06 12:05 ` Robert J. Chassell
2008-01-06 12:40 ` David Kastrup
2008-01-06 16:51 ` Robert J. Chassell
2008-01-06 17:03 ` David Kastrup
2008-01-07 4:18 ` Richard Stallman
2008-01-05 22:46 ` Stefan Monnier
2008-01-06 18:09 ` Richard Stallman
2008-01-07 17:17 ` Gregory Collins
2008-01-07 23:21 ` Stephen J. Turnbull
2008-01-08 0:25 ` Gregory Collins
2008-01-08 0:51 ` David Kastrup
2008-01-08 2:43 ` Mike Mattie
2008-01-08 3:03 ` YAMAMOTO Mitsuharu
2008-01-08 4:25 ` Mike Mattie
2008-01-08 19:07 ` Richard Stallman
2008-01-03 10:32 ` David Kastrup
2008-01-01 17:11 ` Alan Mackenzie
2008-01-01 18:05 ` Werner LEMBERG
2008-01-01 18:27 ` Alan Mackenzie
2008-01-01 18:28 ` Werner LEMBERG
2008-01-02 9:53 ` Richard Stallman
2008-01-02 10:36 ` Werner LEMBERG
2008-01-02 12:23 ` Eric S. Raymond
2008-01-04 5:27 ` Richard Stallman
2008-01-02 11:27 ` Thien-Thi Nguyen
2008-01-02 12:17 ` Eric S. Raymond
2008-01-03 1:26 ` Stephen J. Turnbull
2008-01-03 2:49 ` Eric S. Raymond
2008-01-04 5:27 ` Richard Stallman
2008-01-04 5:35 ` Miles Bader
2008-01-04 12:47 ` Eric S. Raymond
2008-01-05 14:30 ` Richard Stallman
2008-01-06 1:10 ` Miles Bader
2008-01-04 12:45 ` Eric S. Raymond
2008-01-05 14:30 ` Richard Stallman
2008-01-05 15:29 ` Eric S. Raymond
2008-01-05 15:59 ` Andreas Schwab
2008-01-06 2:14 ` Mike Mattie [this message]
2008-01-03 1:08 ` Giorgos Keramidas
2008-01-03 2:56 ` Eric S. Raymond
2008-01-03 3:18 ` Giorgos Keramidas
2008-01-04 5:27 ` Richard Stallman
2008-01-04 8:51 ` David Kastrup
2008-01-05 14:30 ` Richard Stallman
2008-01-05 15:28 ` David Kastrup
2008-01-06 10:46 ` Richard Stallman
2008-01-06 11:10 ` David Kastrup
2008-01-07 4:18 ` Richard Stallman
2008-01-07 4:36 ` dhruva
2008-01-07 4:52 ` Sam Steingold
2008-01-07 5:09 ` dhruva
2008-01-07 8:17 ` David Kastrup
2008-01-07 15:37 ` Stefan Monnier
2008-01-07 15:47 ` David Kastrup
2008-01-07 16:22 ` Stefan Monnier
2008-01-07 17:09 ` David Kastrup
2008-01-07 15:40 ` CHENG Gao
2008-01-07 23:36 ` Stephen J. Turnbull
2008-01-08 4:31 ` CHENG Gao
2008-01-08 5:07 ` Mike Mattie
2008-01-08 2:56 ` Mike Mattie
2008-01-08 9:37 ` Andreas Schwab
2008-01-07 5:16 ` Jason Earl
2008-01-07 17:16 ` Richard Stallman
2008-01-07 17:45 ` Gregory Collins
2008-01-08 19:07 ` Richard Stallman
2008-01-08 19:50 ` Miles Bader
2008-01-13 20:06 ` Giorgos Keramidas
2008-01-14 11:28 ` Richard Stallman
2008-01-07 21:28 ` Jason Earl
2008-01-07 8:15 ` David Kastrup
2008-01-07 8:33 ` Giorgos Keramidas
2008-01-07 23:50 ` Stephen J. Turnbull
2008-01-05 21:11 ` Stephen J. Turnbull
2008-01-06 18:08 ` Richard Stallman
2008-01-07 9:35 ` Piet van Oostrum
2008-01-01 20:53 ` Nick Roberts
2008-01-02 9:53 ` Richard Stallman
2008-01-02 12:24 ` Eric S. Raymond
2008-01-02 15:19 ` David Kastrup
2008-01-02 20:35 ` Karl Fogel
2008-01-02 19:19 ` Andreas Schwab
2008-01-02 19:23 ` Romain Francoise
2008-01-03 1:18 ` Giorgos Keramidas
2008-01-03 7:55 ` David Kastrup
2008-01-02 9:53 ` Richard Stallman
2008-01-02 10:03 ` David Kastrup
2008-01-02 10:05 ` Tassilo Horn
2008-01-02 11:31 ` Alan Mackenzie
2008-01-02 11:28 ` Tassilo Horn
2008-01-02 14:26 ` Óscar Fuentes
2008-01-02 19:48 ` Karl Fogel
2008-01-02 18:43 ` Andreas Schwab
2008-01-02 22:10 ` Alfred M. Szmidt
2008-01-03 2:58 ` Karl Fogel
2008-01-03 1:21 ` Giorgos Keramidas
2008-01-03 9:14 ` Andreas Schwab
2008-01-03 10:57 ` Giorgos Keramidas
2008-01-01 19:37 ` Eric S. Raymond
2008-01-01 21:46 ` Alan Mackenzie
2008-01-01 22:49 ` Eric S. Raymond
2008-01-02 17:05 ` Mark A. Hershberger
2008-01-03 9:49 ` Richard Stallman
2008-01-02 8:35 ` Tassilo Horn
2008-01-02 5:54 ` John S. Yates, Jr.
2008-01-02 11:52 ` Eric S. Raymond
2008-01-03 9:50 ` Richard Stallman
2008-01-02 8:51 ` tomas
2008-01-02 9:53 ` Richard Stallman
2008-01-01 22:01 ` Romain Francoise
2007-12-31 13:11 ` Alan Mackenzie
2007-12-31 13:24 ` Miles Bader
2007-12-31 13:44 ` Alan Mackenzie
2007-12-31 15:45 ` Eric S. Raymond
2007-12-31 15:14 ` Juanma Barranquero
2007-12-31 15:31 ` Eric S. Raymond
2007-12-31 15:25 ` Eric S. Raymond
2008-01-01 20:34 ` Alan Mackenzie
2008-01-01 20:57 ` Eric S. Raymond
2008-01-02 9:53 ` Richard Stallman
2008-01-02 12:29 ` Eric S. Raymond
2008-01-02 12:59 ` dhruva
2008-01-02 13:11 ` Miles Bader
2008-01-02 13:17 ` Tassilo Horn
2008-01-02 13:49 ` David Kastrup
2008-01-04 5:28 ` Richard Stallman
2008-01-04 7:03 ` John S. Yates, Jr.
2008-01-05 14:29 ` Richard Stallman
2008-01-02 13:48 ` Werner LEMBERG
2008-01-02 13:56 ` dhruva
2008-01-02 14:55 ` Eric S. Raymond
2008-01-03 1:13 ` Giorgos Keramidas
2008-01-02 14:50 ` Eric S. Raymond
2008-01-19 17:45 ` Jari Aalto
2008-01-20 2:59 ` dhruva
2008-01-20 5:10 ` Miles Bader
2008-01-20 5:36 ` Juanma Barranquero
2008-01-20 6:03 ` Miles Bader
2008-01-20 19:28 ` Eli Zaretskii
2008-01-20 20:42 ` Juanma Barranquero
2008-01-20 20:17 ` Juanma Barranquero
2008-01-20 20:28 ` Juanma Barranquero
2008-01-21 2:11 ` Miles Bader
2008-01-21 2:38 ` Karl Fogel
2008-01-21 2:49 ` Miles Bader
2008-01-21 3:06 ` Nick Roberts
2008-01-21 3:17 ` Miles Bader
2008-01-21 3:26 ` Stephen J. Turnbull
2008-01-21 3:16 ` Glenn Morris
2008-01-21 4:11 ` Nick Roberts
2008-01-21 10:00 ` Thien-Thi Nguyen
2008-01-21 2:41 ` Juanma Barranquero
2008-01-21 3:01 ` Nick Roberts
2008-01-21 9:07 ` Richard Stallman
2008-01-21 15:51 ` Dan Nicolaescu
2008-01-21 17:37 ` Miles Bader
2008-01-21 17:53 ` Tom Tromey
2008-01-21 20:06 ` Stefan Monnier
2008-01-21 19:50 ` Tom Tromey
2008-01-22 0:33 ` Dan Nicolaescu
2008-01-24 14:43 ` Mark A. Hershberger
2008-01-24 15:00 ` Juanma Barranquero
2008-01-24 15:34 ` dhruva
2008-01-24 19:52 ` Stephen J. Turnbull
2008-01-25 0:43 ` Juanma Barranquero
2008-01-25 22:47 ` Richard Stallman
2008-01-25 23:13 ` Alfred M. Szmidt
2008-01-25 23:36 ` Miles Bader
2008-01-27 0:45 ` Richard Stallman
2008-01-27 17:39 ` David Kastrup
2008-01-27 20:06 ` Nick Roberts
2008-01-27 22:21 ` David Kastrup
2008-01-27 23:58 ` Johan Bockgård
2008-01-28 7:17 ` Richard Stallman
2008-01-28 7:17 ` Richard Stallman
2008-01-28 7:57 ` GNU Project [was: Re: What a modern collaboration toolkit looks like] Nick Roberts
2008-01-28 21:32 ` Richard Stallman
2008-01-28 7:18 ` What a modern collaboration toolkit looks like Richard Stallman
2008-01-28 7:30 ` David Kastrup
2008-01-28 9:18 ` Stephen J. Turnbull
2008-01-28 21:32 ` Richard Stallman
2008-01-26 1:23 ` Thomas Lord
-- strict thread matches above, loose matches on Subject: below --
2008-01-01 3:09 Nick Roberts
2008-01-01 6:24 ` Eric S. Raymond
2008-01-03 20:32 Trey Jackson
2008-01-04 9:46 ` dhruva
2008-01-05 13:36 ` Eli Zaretskii
2008-01-05 15:04 ` dhruva
2008-01-05 15:13 ` Eli Zaretskii
2008-01-06 1:17 ` Miles Bader
2008-01-04 13:43 ` Gianluca Della Vedova
2008-01-05 14:30 ` Richard Stallman
2008-01-06 5:03 ` Trey Jackson
2008-01-06 6:58 ` Nick Roberts
2008-01-07 4:57 ` Trey Jackson
2008-01-07 5:54 ` Nick Roberts
2008-01-06 18:09 ` Richard Stallman
2008-01-07 5:16 ` Trey Jackson
2008-01-07 6:15 ` Nick Roberts
2008-01-07 15:41 ` Stefan Monnier
2008-01-29 5:43 Werner LEMBERG
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=20080105181407.6fa67306@reforged \
--to=codermattie@gmail.com \
--cc=emacs-devel@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 external index
https://git.savannah.gnu.org/cgit/emacs.git
https://git.savannah.gnu.org/cgit/emacs/org-mode.git
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.