Hi there,

I would like to emphasize something which Charles Lepple already hinted at:

Why not use git (hosted at github.com, ideally) for devs, and subversion for 
end users?

Let me explain where I see the advantage:

Git is more modern and advanced than Subversion, and has features that I 
personally consider very helpful for developers, based on experience. Yet I 
also see good reasons for using Subversion, at least for end users. The main 
point being that binaries for svn ship with Mac OS X, meaning "fink 
selfupdate-svn" would work immediately after a boostrap.

But by using git + github.com, we could combine the advantages of both 
Subversion and git:

* github.com offers a free Subversion <-> git bridge, even including 
(necessarily limited) write support. And yes, over http! See here:
  <https://github.com/blog/626-announcing-svn-support>
  <https://github.com/blog/626-announcing-svn-support>

* If some of you prefer Mercurial: No problem, you can use hggit to access a 
git repository via the mercurial userland. I tested this successfully in the 
past.
  <http://hg-git.github.com/>

* git *can* be accessed through http for both reading and writing, i.e. also 
through a proxy. Again, I have used this successfully in the past. On 
github.com, this is always possibe.

* with github.com, we get various nice bonus features, like the ability to do 
code reviews, and to use many custom service hooks, much more than what SF.net 
offesr.

* since git is a DVCS, it's quite easy to switch to a different "master 
repository". Meaning: If we need to move it to a new location (say away from 
github or sf.net to a server of our own), this is a one-line command which 
takes virtually no time to execute. I.e. we are not as trapped as we are with 
the SF.net CVS offering
 (granted, SVN also helps this with "svn switch")

* git (like mercurial) has many advanced features over Subversion. Some tools 
that really saved me a lot of time in the past include "git grep" (greps the 
whole repository; some orders of magnitude faster on my system than grepping 
through a CVS/SVN checkout); "git bisect" (which helps track down regressions; 
not so useful for the distro tree, I guess); great branching support (e.g. I 
imagine that 10.4/stable, 10.5/unstable, etc. could be a separate branch each, 
and we'd have multiple "checkouts" for each inside /sw/fink/dists); great 
merging support; and many other things.

* the "experimental" tree could completely go. Instead, each dev could simply 
have a personal "fork" of the main Fink repository, in which modified packages 
go. Once a package is ready for the regular repository, it can be merged into 
that, leaving the version history intact 

* Even better, non-devs can also make forks, but instead of directly merging 
their changes, they can file a "pull request", i.e. they can ask the Fink team 
to integrate their new package or package updates. Consider this as an advanced 
alternative to the Package submission tracker. Only that it is possible to 
accept new packages/fixes with a single button click from inside the browser. 
And if the submission is lacking, you can provide feedback and request changes, 
and even comment on the submitted code -- even making line annotations. This 
really simplifies patch submissions for everybody involved (once you learned 
the minimal git you need to submit stuff this way, at least).

* People asked for by-file access control. Yes, this is possible with git. See 
here
   <http://progit.org/book/ch4-8.html>
However, I am not sure (or rather, am doubtful) whether github supports this 
(it would be easy enough to ask them whether they support by-file access 
control). If we were to setup our own server, though, this is the way to go.


Cheers,
Max


------------------------------------------------------------------------------
The modern datacenter depends on network connectivity to access resources
and provide services. The best practices for maximizing a physical server's
connectivity to a physical network are well understood - see how these
rules translate into the virtual world? 
http://p.sf.net/sfu/oracle-sfdevnlfb
_______________________________________________
Fink-devel mailing list
Fink-devel@lists.sourceforge.net
http://news.gmane.org/gmane.os.apple.fink.devel
Subscription management:
https://lists.sourceforge.net/lists/listinfo/fink-devel

Reply via email to