I've been thinking a lot about source control lately. Ive been having issues with my development process (using svn/TortoiseSvn) and working with p5p lately that really makes me think that the current scheme is not all that cool.
Currently Perl5 uses a Perforce repository hosted by Activestate. FWICT you are only allowed read access if you have a commit bit and for obvious reasons the pool of people with commit bits is small, and because of attrition in the developer community,
Now, most of the work I do is new features, and accordingly I'm not that fussed about not having a commit bit. Forcing peer review and a sober-second-thought on new features is a good plan, and many a bug has been caught by the two man process. Although annoyingly a couple of doozies have passed oversight for some time without any notice at all. (Which I suppose is to be expected in any development project of this size and complexity.)
However what really annoys me is that I can't easily synchronize my local version with the ongoing patch and when I upload my changes its via a snapshot. My local history is lost, and when the patch is merged in its showed as being from the person who committed it, and not me (although the patch comment usually shows more details). On at least one occassion this has lead to someone blaming a bug on the commiter and not me, the actual responsible party.
So I want a system where i can maintain my local tree, where I can easily sync it with others, and etc. It looks to me like Git is the right choice. While svk also seems interesting I don't like the fact that its based on SVN which Im slowly coming to dislike on an achitectural basis.
The
Now, I'm not a unix person in general, and it appears Git support on Windows is weak, but since it appears to work fine under cygwin I would happily change to using it. And frankly I'm getting more and more inclined to do a total permanent switchover to linux anyway.
Yes to "git" (Score:2)
I've been involved with the git community since the beginning, and in fact serve as the "canary in the mine" when it won't work cleanly on OpenBSD or OSX, and provide occasional guidance for the small parts that are written in Perl (the remainder is in C and some shell).
I have been using git to track the Perl6 docs and Parrot development trees (similar to the way people use svk) so that I can see the entire project history when I'm offline (like at 30K feet in an airplane).
To come up to speed quickly on
Re: (Score:1)
I realize asking a bunch of Linux people to keep Win32 development in mind is hardly politically popular, but it would go a long way to making Git more appropriate for projects like Perl. Consider we have active contributors doing dev and testing on pretty much everything you can imagine. The more widely
Not Right Now (Score:1)
While Perforce's readonlyness and the limited supply of licenses bothers me too (
rsyncjust does not cut it, while I have patches waiting in my tree), doing something that makes it even more difficult for Win32 programmers to participate seems to me to be a very bad idea.I can barely get feedback from Win32 users on my pure-Perl modules; it's difficult to believe that there are any Win32 programmers interested in using Perl and willing to install both Cygwin and Git to get at the source code.
Re: (Score:1)
Also, I tend to think that anybody doing serious OpenSource dev on Win32 has Cygwin installed anyway. Its just too useful and too much of pain to get the required toolsets working from elsewhere.
But, I have to say I dont see how we ge
Re: (Score:1)
I have to agree that if you want to change it then whatever you replace it with needs to be Win32 friendly and not the "cygwin" variety of Win32.
Re: (Score:1)
From a end user experience, I go to the Cygwin setup tool, select git, procede with the install and I'm done. I then go to my shell and follow the tutorial for using git and it all apears to work just fine.
So whats the objection?
Re: (Score:2)
One step back, please, Cygwin seems to go just a bit too far.
And I actually like bash. I don't know the difference with the other Unix shells, but I do like it.
Re: (Score:1)
Re: (Score:2)
afaik git treats all files as binary blobs so it shouldnt mess with line endings at all.
That's not my definition of "properly handling line endings". A version control system that doesn't treat a change of line endings as a simple file attribute change (a meta change), is not doing the proper thing, IMO. And many don't. Most treat this as a change on every single line.
It's simple enough. If an assumed text file contains plenty LF characters and not a single CR character, then it's a Unix file. If it only contains pairs of CR+LF characters, no other bare CR nor LF characters, then it's a "DOS"
Re: (Score:1)
Re: (Score:1)
I hate the way Cygwin tries to map the Windows drive letter fiasco to a Unixoid filesystem hierarchy. It grates on my sensitivities every step of the way when I try to use Cygwin.
Re: (Score:1)
Re: (Score:1)
The last time I did any work on Windows, I used Cygwin as well, but that's because I was much more comfortable with Unix than Windows. I don't know if long-time Windows developers who've never really used Unix would feel the same need to install Cygwin that I did (and I can only guess at your background).
I just feel leery about switching to a tool that doesn't yet have a native version on such an important platform where we don't attract many contributors. (I can only guess at how Git works on OS/2 and
Re: (Score:1)
The VMS crowd, however, is very stable minority of users. Unfortunately, they cannot use Perforce natively on recent VMS versions, specifically on Itaniums. There is actually a very limited number of platforms that can natively use the most recent version of Perforce. For example, support for AIX, OpenBSD, and IRIX seems to be dropping off. The lack of git on Win32, however, is much more concerning issue as this effects a large number of Perl users.