[Top][All Lists]

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

Re: git mirror of emacs CVS repository

From: Jim Meyering
Subject: Re: git mirror of emacs CVS repository
Date: Mon, 07 May 2007 07:04:58 +0200

Hi Miles,

Miles Bader <address@hidden> wrote:
> Jim Meyering <address@hidden> writes:
>> I'm using git for projects I control, and find that I am less and less
>> tolerant of the abysmal (by comparison) performance of CVS and SVN
> Git is enticing, but the main issue that's prevented me from adopting it
> has been the (apparent) clumsiness of maintaining tag information in
> conjunction with a "remote shared" repository.
> It's a bit hard to describe, but basically I want a single central git
> repository (for myself in this case, but something similar might be
> desirable for a project like Emacs) with multiple "branches" in it, and
> I want to be able to have different "checkouts" of that (e.g., a
> checkout of 'tag FOO').  When I make a change locally, I want to then
> commit the changes to the branch described by 'tag FOO' and _update the
> central repository's notion of 'tag FOO'_.  The latter point seems to be
> where the problems occur.

You can do this with what git calls "branches", not tags.

> My vague impression is that working this way is possible, but not
> entirely trivial, and that other projects trying to use a similar model

I suspect that branching is never entirely trivial in any dVCS :-)

> (x.org?) use big .git-config files specifying the proper tag
> synchronization to use, which seems kind of fragile.

I haven't looked at their set-up, but...
I can imagine that a complex process would seem fragile.
However, I'll bet you can set up hooks to serve as a safety net
and/or to enforce complicated policy.

Sounds like you want to use branches the way git itself is using them.
Clone git, then do "git branch -a".  Here are some of them
(in addition to the usual master and origin ones)

  next - the published list of upcoming (to-be-merged-to-master) topics
  maint - maintenance fixes go here first, then are merged into master

For some use cases involving those branches, see the "Integrator"
section of Documentation/everyday.txt

In reading through the documentation, look at what they mean
by a "topic branch", and consider how "git rebase ..." can be used
to keep one up to date with e.g., its parent branch.

Also, to visualize a repository, try the "gitk" tool.
Run it from inside a cloned repository.  E.g.,

  git clone git://git.sv.gnu.org/emacs.git; cd emacs; gitk

reply via email to

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