Re: selfupdate-git

Dustin Cartwright <[email protected]>
Newsgroups gmane.os.apple.fink.core
Message-ID <CACcoanzANHsvPx0JbCTezxs0g=DbAw7WrRWs9JmQfsxU+8uN6g@mail.gmail.com>
On Wed, Aug 1, 2012 at 8:34 AM, Max Horn <[email protected]> wrote:

>
> On 31.07.2012, at 15:58, D H wrote:
> > For me git is the better choice, especially since we are a distributed
> > open source project
>
> .... I mean unlike this "argument by analogy", which is not an actual
> argument. Hey, I like git more than SVN, too, but I don't think git is the
> perfect answer to everything. And in this case, so far I saw more
> convincing arguments pro-SVN than pro-git. Of course, perhaps we can use
> *BOTH*, as I already stated in my prior email, that would then neatly solve
> the problem. But this should first be carefully tested and evaluated.
>

I'll make the case that if there's ever a project that could benefit from
distributed source control, it's the fink dists repository. Lots of open
source projects have many developers spread over the world, but dists
repository is an one extreme case in that it has hundreds of maintainers,
each of which are "core" for their packages. Most of these don't have write
access to the dists repository and so are basically doing version control
by hand.

Specifically, as someone without commit rights, if I want to update a
package, what I do is copy the info and maybe patch file to my local tree,
make my modifications, and submit it on the SF tracker. Then some core
member comes along, downloads the files to their local tree, maybe does a
diff against the old package, tries to build it, and if it works copies it
to the stable tree and commits the changes. Each of these steps: for me to
set up up a local modification, for someone else to switch to my modified
file, to compare the modification to the old version, and to move the
modification to the repository, is basically doing version control by hand,
and each step would be a few lines in git.

And this sort of distributed workflow doesn't just benefit non-core
maintainers. It seems that some maintainers are sensitive about other
people modifying their packages. To modify someone else's package and send
it through them is basically the same process as above with emailing them
the modifications instead of the SF tracker. With git and github, modifying
someone else's package and submitting a pull request to them is as easy as
submitting a pull request to the main repository.

The point in both scenarios is that git makes it easy to make changes
without sending them immediately to the master repository. They can be
filtered through the package maintainer or a core developer, and at each
stage everyone's benefiting from having a version control system, not just
the final commit to master.

Finally, I also suggest that maybe the dists repository could be organized
with the different OS versions (10.4 and 10.7) as branches rather than
subdirectories. This would make it easier to make changes on 10.4 and then
sync them over to 10.7 or vice versa. In fact, it would be nice to have a
different branch for each version (10.5, 10.6, 10.7, and 10.8) if there was
someone to keep 10.5 "tied" with 10.6 and 10.7 "tied" with 10.8. This makes
EOL'ing an OS version straightforward: just stop automatically synching it.
One big downside is that changing the repository structure probably means
that the CVS history can't be copied into the git repository.

That's my case for git, but I agree that it is harder to use than svn. Part
of the reason is that git supports many different workflows. One way to
make this easier is to have wrappers which handle implement whatever the
policy will be for submitting packages, which is the most common task that
most developers will need.

Dustin


>
>
> Cheers,
> Max
>
> ------------------------------------------------------------------------------
> Live Security Virtual Conference
> Exclusive live event will cover all the ways today's security and
> threat landscape has changed and how IT managers can respond. Discussions
> will include endpoint security, mobile security and the latest in malware
> threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/
> _______________________________________________
> fink-core mailing list
> [email protected]
> List archive:
> http://news.gmane.org/gmane.os.apple.fink.core
> Subscription management:
> https://lists.sourceforge.net/lists/listinfo/fink-core
>

------------------------------------------------------------------------------
Live Security Virtual Conference
Exclusive live event will cover all the ways today's security and 
threat landscape has changed and how IT managers can respond. Discussions 
will include endpoint security, mobile security and the latest in malware 
threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/

_______________________________________________
fink-core mailing list
[email protected]
List archive:
http://news.gmane.org/gmane.os.apple.fink.core
Subscription management:
https://lists.sourceforge.net/lists/listinfo/fink-core
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.