[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: What a modern collaboration toolkit looks like

From: Stefan Monnier
Subject: Re: What a modern collaboration toolkit looks like
Date: Sat, 05 Jan 2008 17:46:15 -0500
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/23.0.50 (gnu/linux)

>     So perhaps you hack all day, periodically making commits (using "git
>     commit") which store your changes into the .git subdir.  Then when you
>     later connect to the net, you can merge the new changes in .git into the
>     remote emacs repository on savannah (using "git push").

> It sounds like "git push" is the real analogue of CVS commit,
> and that this is the closest match-up between the concepts of git
> and the concepts of CVS:

>         CVS           GIT
>         save file  =  commit
>         commit     =  pull or push

Kind of, yes, except that the "git commit" really does a "local commit"
to a local branch.  In VC we implemented a poor-man replacement by
allowing mixing various backends, where the expected use was as follows:

  Let's say you have a file under CVS which you want to modify.
  The modifications are fairly long running and you feel like you'd want
  to be able to commit every once in a while so you can go back or so you
  can diff between various intermediate stages of your work.
  But as it turns out you don't actually want to commit to the CVS
  either because the CVS repository is unavailable (offline, or
  read-only), or because you're not sure you'll want to install the
  change in the end, or ...

  So you register your file under RCS: the file is now both under CVS
  and under RCS at the same time.  C-x v b allows you to switch VC's
  view between the two backends.  So now you can do all your local
  commits to RCS, with ability to do diffs/revert/... without needing to
  contact the CVS repository.

  After a while, your hacking may result in something you decide
  deserves to make it into the CVS, so you go ahead and commit the new
  file to CVS.  VC actually provides you with a command that makes up
  the changelog for this commit by extracting it from the RCS file, thus
  basically transfering the local RCS branch to the CVS repository (as
  a single change rather than a bunch of little changes).

In the above context, the equivalence would be:

           CVS&RCS            Git
           save file          save file
           commit to RCS      commit
           commit to CVS      push

> But I still don't understand what step actually alters the trunk that
> users will get by default from the public repository.  Does `push' do
> that?

Yes, presuming that by "push" you mean "push to the default public


reply via email to

[Prev in Thread] Current Thread [Next in Thread]