Version Control in the MacPorts tree

Rainer Müller raimue at macports.org
Thu Sep 6 01:47:04 PDT 2012


On 2012-09-05 21:50, Clemens Lang wrote:
> On Wed, Sep 05, 2012 at 09:35:58PM +0200, Benoit T wrote:
>> I don't see why I should spend more time chopping off the output of
>> svn diff (that's not really a unified diff) and manually entering
>> individual patches into Trac, than the time it took me to come up with
>> the changes, when some other tools would have allowed me to just
>> submit a single changeset that's also trivial to review and apply by
>> the human being on the other side.

You can also produce a single patch file containing changes targeting
multiple files. I agree that uploading additional files to Trac is a bit
cumbersome. But that has nothing to do with Subversion vs. Git, but
rather is a shortcoming of Trac.

Also, we have some scripts that make working with Trac easier:

https://trac.macports.org/wiki/CommittersTipsAndTricks#ApplypatchesdirectlyfromTracURL

>> Actually, even though I edited out the "Index:" lines of svn diff,
>> Trac is smart enough to associate my diffs with the svn repo, so as to
>> recreate those lines in the attachment viewer! So maybe I wasted my
>> time turning those almost-unified-diffs into conforming unified diffs?
>> Hopefully not, as patch -p0 would probably still have choked.
> 
> I think the format generated by svn diff is fine, so yes, you probably
> wasted time unnecessarily here.

Absolutely, 'svn diff' produces output which is fine for either 'patch'
or the builtin 'svn patch'.

>> So, in short, when is MacPorts switching to Mercurial or Git? :-)
> 
> There was a discussion on this a while ago and a strong point against
> git was that older versions of OS X didn't ship git with Xcode (so you'd
> have to install it from MacPorts).

Yes, we had this discussions about switching to git multiple times in
the past. Hosting the main ports tree in a subversion repository is the
most compatible option that can be used with almost any other version
control tool. If you would like to, feel free to use git-svn, hg-svn or
bzr-svn on top of the existing repository.

MacPorts already supports multiple ports trees, where each of them can
be synced from a different URL. Currently, we support rsync, subversion
or a tarball among other, almost unused and untested protocols (http/ftp
and a custom mport protocol).

However, no code was contributed yes to support syncing a ports tree
from a git repository. Before we can really think about switching the
main ports tree to git, we should at least have support for additional
ports trees hosted in a git repository. After that is done and works in
a sufficient way we can discuss about switching to git again.

Rainer

PS: I also want to note that you please do not mix up the two topics of
switching to git and using the web interface of a different hosting
provider such as github.


More information about the macports-dev mailing list