Re: Thoughts on choosing a source code control system?
Re: Thoughts on choosing a source code control system?
- Subject: Re: Thoughts on choosing a source code control system?
- From: Ian Joyner <email@hidden>
- Date: Mon, 13 Mar 2006 15:28:28 +1100
I think what I would appreciate is a light-weight version control
system better-integrated with the development system, one where when
I start on some functionality or patch, allows me to create a new
patch, documenting the purpose, etc and that in the editor, the lines
that are changed can be flagged with a spot down the side of
something, and if I select that line, it displays on the bottom which
patch it belongs to, and I can selectively undo patched lines (to see
what was there before, which could be another patch), and that I can
undo that line (without having to undo all other changes because
undos are tied to a stack).
Actually, that's what line numbers were great for, something that
everyone who was brought up on C and such seem to hate (because of
FORTRAN and COBOL). Of course, if the intention of line numbers had
been understood, perhaps we would have their functionality because
editors understood the structure of software better, ie a patch might
say "this is a change to line 6 of routine r of class C in library
L". (Line numbers could be hidden because after all, they are just
keys.)
Actually, the Burroughs editor (by a guy named Sharhem Jahari (I have
no idea how to spell that!) and greatly extended by Matt Miller who
integrated system dumps and debugger support into it) has that. Every
compiler of any language wrote out XREFFILES containing information
and location of every symbol in the system. Xcode has indexing, but
not to the same extent.
But these tools along with the PatchManager were for the system
software (MCP OS, compilers, environment and networking software) and
doing WebObjects is supposed to not have such complexity, that is if
you are even writing code, you are doing something wrong. So, I don't
know, I find the need for SCS seems to be at odds with WebObjects. A
300 line class is really complex for what I'm doing (although I have
one 1,500 line class which is a controller for a screen with about 18
tabs on it, with drag and drop and auto-save, and a lot of that is to
provide functionality that I think could have been in WO in the first
place).
So I kind of feel because of the difficulty of using most of these
SCSs and the need for a librarian (where it should be controlled by
the chief software developer) is kind of overkill – although I admit
I would like some of the offered functionality and may buckle just to
get some of it. But maybe my unease with these systems is that they
seem more file-based because that's "the way computers and Unix
work", rather than patch-based which would result from thinking about
the development process at a high-level of abstraction.
Ian
On 13/03/2006, at 2:42 PM, Karl wrote:
I personally believe that an SCS, whichever poison / flavour you
choose, is a very good idea. Its nice to be able to remove the
'oops' factor and to get back to a prior version of code. Or to
have some assistance with branching code.
However I really understand what Ian is saying with respect to any
overhead: I believe in the role of librairian..someone who manages
your code, checks it in, etc, etc. Whichever language you use, it
is a valuable role. Understanding every aspect of your code and
its life cycle is critical. An SCS is a tool that can assist and
also deal with the oops factor.
Karl
On 12-Mar-06, at 10:33 PM, Arturo Pérez wrote:
Well, Ian, that's certainly radical. I must say that I would
really feel must comfortable having a SCS handy as I like to make
lots of small revisions.
My personal process is make revisions, get to a stable (but not
necessarily bug-free) point and do a backup. I prefer to use an
SCS for backup as the tools are mostly engineered with that in
mind. But a plain backup would probably work well, too.
The only OS I know of that supported that nicely is VMS but even
it only supports 32,000 versions of a file :-)
-arturo
On Mar 12, 2006, at 8:08 PM, Ian Joyner wrote:
Now what are your real requirements? I'll throw in another
thought for you – don't bother with an SCS at all! For small
companies and small projects they really are not necessary and
add so much overhead that you almost have to employ an expert to
get whichever one you choose working.
Rather than wasting such resources, the money is better spent on
someone who really understands software structure will get your
class structure right and develop neat programs. Perhaps once
that is right, an SCS might help, but too often the reverse is
the case and an SCS is used to help manage a mess of a software
system.
Of course, this comment might start off the real religious war
since the process and methodology people don't like the real
truth to be known that they are really just hiding behind their
tools ("the project failed, but don't blame us we did everything
right according to some misguided book"). Since I don't know the
real structure of your company or development team I can't really
comment, but I can only say that SCS systems are not necessarily
a mandatory part of the development process, and it is worth
thinking about, since none of these tools seem to be without
their problems (which you must expend energy and resources to
solve).
(Oh yeah and be wary of the marketing pitch of these
methodologies that says you are obviously a hacker if you are not
using this or that tool. They know how to make people feel
inferior if they are not using them and of course can go straight
to management, who will fall for the pitch. Goes back to the SA/
SD days and probably further, but I know even Larry Constantine
who wrote the book with Yourdon woke up to that one and moved on.)
OK, I'm going back to reading "Object-Oriented Software
Construction" now.
Ian
On 12/03/2006, at 8:24 AM, email@hidden wrote:
Hi all,
I hope this doesn't kick off a flame war; I know this can be
one of those semi-religious topics. But I'm hoping we can have
a civil discussion about it.
I've used CVS forever, and want to move into something more
modern. I heard from several people I really trust that
Perforce is da bomb, and in my tests it worked just fine. I had
occasion to use their support, and was impressed by how good it
was. However, the $800 per seat cost is pretty steep for a
small company, and it seemed clear from reading both the Xcode
and WO lists that there are a lot of people using Subversion.
So I decided to look into that.
After reading through the Manning book on Subversion, I was
starting to have doubts. There were a distressing number of
places where the author seemed to be giving workarounds to
limitations in Subversion, without quite admitting that was what
he was doing. I just didn't feel like I was reading about a
polished product, one that would be so much better than CVS that
it would be worth the effort to switch. However the siren call
of "free" was still beckoning me, so I started monitoring the
Subversion user's list.
I don't read all the posts there but from the ones I do read it
seems like a bit of a pattern is emerging. The users there are
extremely protective of their software of choice, and they don't
take kindly to people suggesting improvements. There was
recently a knockdown dragout over whether the "cvs tag"
functionality should be added to Subversion or not.
Additionally, it appears that the Subversion developers are not
terribly interested in what the user community cares about; a
good number of the replies on the tags thread could be boiled
down to "Subversion rulez, we don't need no stinkin' tags, and
why are you bothering to argue about this since the developers
don't take requests". It was not a terribly impressive or
inspiring exchange. I've been part of communities like this
before and it seems to me that when the users have a bad
attitude they usually caught it from the developers, and when
the developers have a bad attitude the software ends up suffering.
OTOH, there have been some big splashy conversions to Subversion
lately; Sourceforge is now offering it, among others. So it's
not like the Subversion project is going to fade into petulant
obscurity any time soon, even if they deserved to.
So... any thoughts on why I should (or should not) go with
Subversion or Perforce or something else entirely are all
welcome. Also, for those using Subversion, are you using it
through Xcode or with some other front end? It seems that some
of it's limitations can be solved by using the right client
software, but there are so many to choose from that it's hard to
tell which one is the best.
Thanks!
janine
_______________________________________________
Do not post admin requests to the list. They will be ignored.
Webobjects-dev mailing list (email@hidden)
Help/Unsubscribe/Update your Subscription:
40sportstec.com
This email sent to email@hidden
_______________________________________________
Do not post admin requests to the list. They will be ignored.
Webobjects-dev mailing list (email@hidden)
Help/Unsubscribe/Update your Subscription:
40ethicist.net
This email sent to email@hidden
_______________________________________________
Do not post admin requests to the list. They will be ignored.
Webobjects-dev mailing list (email@hidden)
Help/Unsubscribe/Update your Subscription:
40mac.com
This email sent to email@hidden
_______________________________________________
Do not post admin requests to the list. They will be ignored.
Webobjects-dev mailing list (email@hidden)
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden