From: "Joseph S. Myers" <joseph@codesourcery.com>
To: NightStrike <nightstrike@gmail.com>
Cc: DJ Delorie <dj@redhat.com>,
gdb@sourceware.org, Joel Brobecker <brobecker@adacore.com>,
binutils@sources.redhat.com
Subject: Re: time to be serious about dropping CVS
Date: Wed, 22 Dec 2010 16:48:00 -0000 [thread overview]
Message-ID: <Pine.LNX.4.64.1012221635490.6746@digraph.polyomino.org.uk> (raw)
In-Reply-To: <AANLkTingsVhVCjoHO2yJr-wz-cqBV5=SDqc4X71oR6YW@mail.gmail.com>
[-- Attachment #1: Type: TEXT/PLAIN, Size: 2978 bytes --]
On Wed, 22 Dec 2010, NightStrike wrote:
> On Wed, Dec 22, 2010 at 10:23 AM, Christopher Faylor
> <cgf-use-the-mailinglist-please@sourceware.org> wrote:
> > On Tue, Dec 21, 2010 at 02:20:38PM -0500, DJ Delorie wrote:
> >>
> >>Just my two cents:
> >>
> >>1. I really hate the way GIT works. Yes, I use it often, no, I don't
> >> seem to be getting used to it.
> >>
> >>2. If src/ is split up, keeping the toplevels and libiberty in sync will
> >> be much harder. I don't think I'm willing to sign up for that job.
> >
> > IMO, in a perfect world, there would be only one version of libiberty
> > and the top-level configury.
> >
> > cgf
> >
>
> That's easy to do with svn and svn:externals
No solution I've ever seen suggested for this, including svn:externals and
git submodules, counts as easy. The basic requirements for being easy
are:
* You can branch, or tag, GCC, or binutils, or GDB, or any other component
including the library, using the native command for branching or tagging
in that version control system, and thereby have a branch or tag wherein
the affected subdirectories are also branched or tagged. This applies to
both remote branches and tags, and to local ones in a DVCS.
* Anyone with write access to any relevant component can do so, as well as
being able to make ordinary changes to the library, and the normal
commands for committing changes can be used, including for changes
including both shared and non-shared files.
(I would add a further requirement "each project can choose its VCS
independently", but that's not a matter of a solution being easy, it's a
desire to avoid in future one of the two things that has made it so hard
for the projects in src to move away from CVS. One is tying independently
maintained projects too closely together; the other is making use of a
feature, CVS modules, that is too specific to a single VCS.)
When you get into special commands being needed to branch, tag or check in
changes you get trouble and lose the advantages of familiarity with a VCS
across multiple projects. I think there are two sensible solutions for
shared files:
* The DVCSly pure one: no master copy, people make changes in whichever
project they are working on and they or someone else merges them to other
copies as convenient. This passes both my points above for being easy for
normal contributors (at the expense of being hard for mergers).
* A single master repository for the shared files and directories, with
all commits to those files in the trunk of the other repositories being
forbidden by commit hooks unless they contain some magic string in the
commit log to indicate they are merges from the master repository. All
people with write access to any affected project also given write access
to this new master repository. This passes my first point but fails the
second.
--
Joseph S. Myers
joseph@codesourcery.com
prev parent reply other threads:[~2010-12-22 16:48 UTC|newest]
Thread overview: 39+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-01-01 8:02 Joel Brobecker
2010-01-01 8:35 ` Eli Zaretskii
2010-01-01 9:00 ` Joel Brobecker
2010-01-01 10:34 ` Eli Zaretskii
2010-01-01 15:39 ` Matthias Urlichs
2010-01-01 15:49 ` Eli Zaretskii
2010-01-01 10:26 ` Mark Kettenis
2010-01-01 10:46 ` Andreas Schwab
2010-01-01 11:03 ` Joel Brobecker
2010-01-01 16:06 ` Matthias Urlichs
2010-01-01 17:57 ` H.J. Lu
2010-01-01 13:00 ` Joseph S. Myers
2010-01-01 14:18 ` Joel Brobecker
2010-01-02 18:11 ` Christopher Faylor
2010-01-02 19:08 ` Christopher Faylor
2010-01-03 13:52 ` Matthias Urlichs
2010-01-08 12:58 ` Phil Muldoon
2010-01-08 13:08 ` Tristan Gingold
2010-01-08 13:20 ` Joel Brobecker
2010-01-08 13:26 ` Tristan Gingold
2010-01-08 13:13 ` Joel Brobecker
2010-01-08 13:21 ` Jonas Maebe
2010-01-08 13:34 ` Andreas Schwab
2010-01-08 13:14 ` Jonas Maebe
2010-01-08 18:41 ` Michael Snyder
2010-01-08 18:49 ` Paul Koning
2010-12-20 17:35 ` Joseph S. Myers
2010-12-21 3:27 ` Joel Brobecker
2010-12-21 3:46 ` Jim Blandy
2010-12-21 7:16 ` Pascal Obry
2010-12-21 15:14 ` Tom Tromey
2010-12-21 16:15 ` Christopher Faylor
2010-12-21 18:39 ` Joseph S. Myers
2010-12-21 19:26 ` Tom Tromey
2010-12-21 18:42 ` Joseph S. Myers
2010-12-21 19:21 ` DJ Delorie
2010-12-22 15:23 ` Christopher Faylor
2010-12-22 15:29 ` NightStrike
2010-12-22 16:48 ` Joseph S. Myers [this message]
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=Pine.LNX.4.64.1012221635490.6746@digraph.polyomino.org.uk \
--to=joseph@codesourcery.com \
--cc=binutils@sources.redhat.com \
--cc=brobecker@adacore.com \
--cc=dj@redhat.com \
--cc=gdb@sourceware.org \
--cc=nightstrike@gmail.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.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox