Hi guys, I've recently started monitoring this list as I am very interested in the Perforce Maven SCM implementation (I recently obtained the source and started looking at how far along it is).
I'm butting in here as I have some thoughts that may have use to your implementations. I have used a number of SCMs, such as Perforce, ClearCase, CVS, SVN, PVCS, StarTeam, and others you've never heard of ;-). Some I know really well (even setup and admin experience), and some just a casual user. I have a couple of comments I will inline. > -----Original Message----- > From: Emmanuel Venisse [mailto:[EMAIL PROTECTED] > Sent: Monday, November 14, 2005 4:26 AM > To: [email protected] > Subject: Re: ClearCase implementation > > > > Wim Deblauwe a écrit : [snip] > > 2) About the checkout command: In ClearCase, you are looking at > > read-only files and you "check out" 1 file to edit that file. After > > that you check your file in. This is not the same for SVN for > > instance, where checkout means, get me all the files of a > certain project. Am I correct? > > How should I then implement checkout. What is it used for in > > Maven/Continuum? > > yes, a checkout command get all files. We need this feature > for Maven and continuum for obtaining all files and build a project. > For Clearcase implementation, you can get all files in > read-only mode (if it's a clearcase > standard) and eventually add an optional parameter in > checkout command for editing a file CVS and SVN are a couple of the few SCMs that use "checkout" in this manner. Most of the other SCMs use some type of "get latest" command for that, and use "checkout" to tell the server the user will now edit a file. The concept is much clearer to the non-CVS/SVN populace with "get latest", "checkout", checkin". It will be very weird for those users to do the Maven scm "checkout" command to get latest for SCMs like Perforce, ClearCase, VSS, etc. many others. For example, CVS uses checkout/update commands to get latest, and "edit" for tracking with watchers. Polymorphism and overloading is usually what I prefer, but here I am not sure - the very different use of commands like "checkout" gives concern, and I suggest using the traditional sense of these (e.g. ClearCase, Perforce manner) for all SCMs or using separate commands/having them mean different things per SCM type). > (Is it an equivalent to a lock command?). Checkout is not equivalent to a lock command. It may also do a lock, depending on the checkout mode (if the SCM has a checkout mode): pessimistic lock or optimistic lock (reserved or unreserved checkouts in ClearCase terms). Some SCMs give the user the choice on checkout (e.g. Perforce, ClearCase), others only have a system setting that determines it for everyone every time (e.g. VSS). [snip]
