[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Savannah-hackers-public] Re: git mirror of emacs CVS repository
From: |
Jim Meyering |
Subject: |
[Savannah-hackers-public] 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)
todo
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