House of Fusion
Home of the ColdFusion Community
Hostmysite Dedicated Hosting

Search cf-talk

August 20, 2008

<<   <   Today   >   >>
Su Mo Tu We Th Fr Sa
           1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31             

Subscribe Now
Fusion Authority Quarterly Update - ColdFusion 8 Special Edition

For ColdFusion hosting try HostMySite.com.
Search over 2,500 ColdFusion resources here  >>>      
Home /  Groups /  ColdFusion Talk (CF-Talk)

Simple source control

  << Previous Post |  RSS |  Sort Oldest First |  Sort Latest First |  Subscribe to this Group Next >> 
Hi,
Claude Schneegans
12/27/06 01:59 P
On 12/27/06 3:59 PM, Claude Schneegans wrote:
Damien McKenna
12/27/06 04:14 P
On 12/27/06 4:13 PM, Zaphod Beeblebrox wrote:
Damien McKenna
12/27/06 04:17 P
>>If I have the file checked out and someone else
Claude Schneegans
12/27/06 04:22 P
> But this is ridiculous!
Doug Bezona
12/27/06 04:21 P
On 12/27/06 4:35 PM, Claude Schneegans wrote:
Damien McKenna
12/27/06 04:49 P
On 12/28/06 3:55 PM, Claude Schneegans wrote:
Damien McKenna
12/28/06 04:03 P
>>This sounds like a job for Dreamweaver.
Claude Schneegans
12/27/06 04:06 P
On 12/27/06 4:05 PM, Claude Schneegans wrote:
Damien McKenna
12/27/06 04:14 P
Claude:
Steve Brownlee
12/27/06 04:56 P
>>1. Lock the file (noted on the server)
Claude Schneegans
12/27/06 05:28 P
>>when the user logs into what?
Claude Schneegans
12/28/06 11:30 A
On 12/28/06 11:28 AM, Claude Schneegans wrote:
Damien McKenna
12/28/06 11:34 A
On 12/28/06 11:37 AM, Claude Schneegans wrote:
Damien McKenna
12/28/06 11:45 A
>  >>when the user logs into what?
Doug Bezona
12/28/06 11:44 A
Claude Schneegans wrote:
Jochem van Dieten
12/28/06 11:57 A
Claude Schneegans wrote:
Jochem van Dieten
12/28/06 12:23 P
Claude,
Richard Kroll
12/28/06 10:33 A
Claude:
Steve Brownlee
12/28/06 11:59 A
>
Richard Kroll
12/28/06 04:16 P
Claude,
Hugo Ahlenius
12/29/06 07:07 A

12/27/2006 01:59 PM
Author:
Claude Schneegans

Hi, I've followed about all threads in the list about source control tools, and I'm still wondering if there exists some tool SIMPLE to use and that would do some elementary task and ONLY those. Assuming we have some application on some CF server somewhere, and a team of developers working remotely on it. Each developer has a copy of the application on his own development PC, with CF etc. When his work is completed and tested, he just updates the application on the server by sending all new stuff. The tool I'm looking for would just allow some developer to lock files on the server the time he needs to modify them. During that time, no other developer could make the same request for these files. This operation would also make the same file write enabled on his own PC, so he can edit them. Otherwise, all the files in his project are read-only. When modifications are over, he would just send a request for updating the files. This would simply upload the new files to the server and unlock them, so that other developers could work on them too. The system would also provide for synchronization, so that new files are automatically sent to all developers when they log in. This would require some managing system on the server, and a client module on every development station, probably linked to the server module using AJAX. Any idea about this? -- _______________________________________ REUSE CODE! Use custom tags; See http://www.contentbox.com/claude/customtags/tagstore.cfm (Please send any spam to this address: piegeacon@internetique.com) Thanks.

12/27/2006 03:19 PM
Author:
Doug Bezona

I just rolled out Subversion in my office, and so I'll speak in terms of that. Most systems work roughly the same way though > I've followed about all threads in the list about source control tools, > and I'm still wondering if there exists some tool SIMPLE to use Subversion is VERY simple to use. Really, I promise. > and that > would do some elementary task and ONLY those. Well, most systems probably do more than you think you want, but that doesn't mean you have to use the "extra" features. > Assuming we have some application on some CF server somewhere, and a > team of developers working remotely on it. > Each developer has a copy of the application on his own development PC, > with CF etc. > When his work is completed and tested, he just updates the application > on the server by sending all new stuff. Here's the workflow with Subversion. 1. The developer does an initial "checkout" of the files from the source repository on the remote server. This gives them a local copy of the files that is "source control aware". They do this once. 2. Once a day or so, they do an "update" on their local copy. This gets any fresh changes from the repository since their last update to keep their copy current. 3. They work with their local files as normal, and when they have changes that are ready to go back into the repository, they "commit" them. These tasks are all very simple to accomplish. There are several GUI tools available depending on platform, editor of choice, etc. to make it very painless. Best case is an integrated plug-in for your editor. For example, the Subclipse plug-in for Eclipse adds some context menus so, for example, and update is a matter of right clicking on the code directory in Eclipse and selecting "Team" -> "Update". It also shows the status of the files right in the file browser. Second best is something like TortoiseSVN, which adds Windows shell integration so instead of doing the commands from within your editor, you simply go out to Windows explorer and right click on the directory or files and do the command from there. Subversion is well supported out there, so it's a matter of finding the right app or plug-in for what your people are using. And most of them are free (as is Subversion, of course). > The tool I'm looking for would just allow some developer to lock files > on the server the time he needs to modify them. > During that time, no other developer could make the same request for > these files. > This operation would also make the same file write enabled on his own > PC, so he can edit them. > Otherwise, all the files in his project are read-only. This part is tricky, mostly because few systems use a locking model these days. Visual Source Safe is one example that does. Subversion uses a merge model, where files aren't locked, but when a developer commits a change, if the file in the repository also has newer changes from another developer, he/she is prompted to merge the changes with a diff tool. It works much more smoothly than it may seem. You CAN lock files with Subversion, but it's not the typical way to use it, and it adds complexity. From experience, the locking model is a pain. Developers are forever forgetting to unlock files when they are done with them, for example. > When modifications are over, he would just send a request for updating > the files. This would simply > upload the new files to the server and unlock them, so that other > developers could work on them too. See "commit" above. > The system would also provide for synchronization, so that new files are > automatically sent to all developers when they log in. See "update" above. You could perhaps use a boot time batch script to force the update each login, but simply having the developers manually update on a regular basis usually works out just fine. > This would require some managing system on the server, and a client > module on every development station, probably linked to the server > module using AJAX. Pretty much (although I don't know what the AJAX part is about).... You install subversion on the server. I highly recommend the SVN 1 Click setup: http://svn1clicksetup.tigris.org/ It's a package of Subversion and TortoiseSVN, which installs all of the key bits, and prompts for initial setup parameters. It takes all of 10 minutes to install and then it's good to go. For the client side, there are a lot of options and it depends on the editor(s) and/or platform(s) your developers are on. The client tool communicates directly with the remote repository. I am not going to get into branching and tagging and all of that other stuff that Subversion can do - you don't necessarily need it right off, and once you do, you'll be more comfortable with the system, and it won't seem as complex. The last bit is getting the files from the repository to somewhere useful on your server so folks can actually use your app :) There's a few ways to skin this cat, but it basically comes down to a simple command or two to get the files where you want them (export, or checkout/update), which can easily be scripted and scheduled using a batch script, a cf script with cfexecute, or Ant if your deployment scenario starts getting interesting... I highly recommend the first 3 or 4 chapters of this: http://svnbook.red-bean.com/ (it's a free, online book about Subversion)   

12/27/2006 03:28 PM
Author:
Claude Schneegans

>>3. They work with their local files as normal, and when they have changes that are ready to go back into the repository, they "commit" them. Ok, but what happens if two developers have modified the same file? Isn't there any way they can lock files so that no other developer can open it for modification? -- _______________________________________ REUSE CODE! Use custom tags; See http://www.contentbox.com/claude/customtags/tagstore.cfm (Please send any spam to this address: piegeacon@internetique.com) Thanks.

12/27/2006 03:35 PM
Author:
Doug Bezona

What happens is when developer A commits a file changed by developer B, he is told there is a conflict, and is prompted to compare the two versions, generally using diff or some variant of it. If the changes can be merged non-destructively, the developer can simply merge all of them, and the combined file is committed. Or he can merge only parts of his changes, or none of them. This page covers the different "models" (locking vs. merging) better than I could. http://svnbook.red-bean.com/nightly/en/svn.basic.vsn-models.html

12/27/2006 04:00 PM
Author:
Claude Schneegans

>>What happens is when developer A commits a file changed by developer B, he is told there is a conflict, and is prompted to compare the two versions, generally using diff or some variant of it. But this is ridiculous! So programmer B has to read and check all what programer A has done, and integrate either his own code into A's file, or A's code ito his own? During all this, he has to check if every line of code is still compatible, and during all the time it takes, there is still a chance programmer C has modify the same file again? May be I didn't use the right term with "version control". What I mean is some tool that will allow programmer A (even force him) to tell the system "I want to work on file such and such". Then all these files are "locked", and when user B comes to ask for the same files, he will be answered "Sorry, these files are already used by programmer A". When programmer A upload the new files, they will be sent automatically to all other programmers, and programmer B will be said "now you've got the new files, you may lock them for yourself if you want." I don't need to recover previous versions (although that might be an option), I just need to manage users so that only one at a time can modify a file. -- _______________________________________ REUSE CODE! Use custom tags; See http://www.contentbox.com/claude/customtags/tagstore.cfm (Please send any spam to this address: piegeacon@internetique.com) Thanks.

12/27/2006 04:14 PM
Author:
Damien McKenna

On 12/27/06 3:59 PM, Claude Schneegans wrote: > So programmer B has to read and check all what programer A has done, and > integrate either his own code into A's file, or A's code ito his own? You mean that your development team will have to work together to ensure that there aren't any incompatibilities?  Say it ain't so!  We'd also best not tell you about distributed revision management tools, like svk, I think you'd keel over :^) Yes, this is what you can do.  You can also optionally lock files to a specific user with SVN (and the older less capable CVS, and probably everything else out there), but it works best when a) you have some project management tools in place to coordinate what people are working on, b) good communication between the developers, c) separate development installations of your code per developer.  I worked at one place a few years ago that considered file locking a good thing but only because some of the development staff weren't technically capable enough to handle the issues (and ultimately the system was so bad that it took down the company). > I don't need to recover previous versions (although that might be an > option), I just need to manage users so that only one at a time can > modify a file. Version control with a system like SVN is a best practice for a reason - its one of the best things your development team can do.  Couple it with MantisBT or Trac and you've got yourself a heck of a powerful combination. --  Damien McKenna - Web Developer - dmckenna@thelimucompany.com The Limu Company - http://www.thelimucompany.com/ - 407-804-1014 #include <stdjoke.h>

12/27/2006 04:14 PM
Author:
Zaphod Beeblebrox

the newest versions of SVN support locking of a file.  The tortoiseSVN (explorer integration) even has a right click option to lock the file. On 12/27/06, Claude Schneegans <schneegans@internetique.com> wrote:

12/27/2006 04:17 PM
Author:
Damien McKenna

On 12/27/06 4:13 PM, Zaphod Beeblebrox wrote: > the newest versions of SVN support locking of a file. FYI that feature has been in there for some time, it isn't a new thing. --  Damien McKenna - Web Developer - dmckenna@thelimucompany.com The Limu Company - http://www.thelimucompany.com/ - 407-804-1014 #include <stdjoke.h>

12/27/2006 04:23 PM
Author:
Claude Schneegans

>>the newest versions of SVN support locking of a file.  The tortoiseSVN (explorer integration) even has a right click option to lock the file. That looks more what I'm looking for. -- _______________________________________ REUSE CODE! Use custom tags; See http://www.contentbox.com/claude/customtags/tagstore.cfm (Please send any spam to this address: piegeacon@internetique.com) Thanks.

12/27/2006 04:14 PM
Author:
Casey Dougall

On 12/27/06, Claude Schneegans <schneegans@internetique.com> wrote: Guess it just really depends on how many developers you have working on the same application. We use Dreamweaver Check-in / Check-out and it's done well for what we need it to do. If I have the file checked out and someone else attempts to download the file, it will download it in a "Locked" version and if they try to edit the file they need to check it out which will tell them I have it checked-out. Now this is where we Skype each other and find out when one or the other is going to be done with the file so the other can do their part. Since we always have multiple projects running concurrently it's not a big deal to drop the project for a bit and get into something else until the file is checked back in. Casey

12/27/2006 04:22 PM
Author:
Claude Schneegans

>>If I have the file checked out and someone else attempts to download the file, So you mean one has to download every file he wants to work on? What if he opens a copy of the file he already has on his disk? -- _______________________________________ REUSE CODE! Use custom tags; See http://www.contentbox.com/claude/customtags/tagstore.cfm (Please send any spam to this address: piegeacon@internetique.com) Thanks.

12/27/2006 04:38 PM
Author:
Casey Dougall

On 12/27/06, Claude Schneegans <schneegans@internetique.com> wrote: With dreamweaver, if you don't have the file checked out and want to work on your local copy, you right click and check the file out. It will in turn grab the newest version of the server. I've yet to find anything that works better for quick "overwrite control" than checkin-checkout we have 3 separate devisions of people who could be editing a file at any one time. SEO, Designers, or Developers, and over the course of the last year I think we had one or two minor problems with someone not checking the file out correctly and overwriting code. It's all about procedures. IF you do shit correctly to begin with, version control is just overkill. I can always get a copy of that file from the last X amount of incremental backups from the last 2 weeks anyway. Casey

12/27/2006 04:21 PM
Author:
Doug Bezona

> But this is ridiculous! It's only ridiculous if you routinely have developers working on the same part of the same files at the same time. In practice that shouldn't (and doesn't) happen a lot. If it does, you have problems source control won't solve for you. Considering the vast number of hugely complex projects that use CVS or Subversion, the system clearly works. You really should read the link I gave you on the topic if you haven't already. It couldn't be more right about why locking = evil. > So programmer B has to read and check all what programer A has done, and > integrate either his own code into A's file, or A's code ito his own? IF there is a conflict, that's the general idea. It may sound wacky, but it's rare, and actually quite easy with a decent diff tool. > During all this, he has to check if every line of code is still > compatible, and during all the time it takes, there is still a chance > programmer C has modify the same file again? Sometimes, but again rarely. > May be I didn't use the right term with "version control". The term isn't incorrect, you just expect it to work a certain way, and most of the highly respected tools don't - for a reason. You CAN get source control systems that work primarily on a locking model - Microsoft would be happy to sell you a copy of Visual Source Safe, for example. > I don't need to recover previous versions (although that might be an > option), I just need to manage users so that only one at a time can > modify a file. Being able to recover previous versions is a rather important use for source control. If your main use case for it is just to lock files so developers aren't stepping on one another, may I suggest looking for project management tools instead so they aren't all working on the same file at the same time to begin with?

12/27/2006 04:47 PM
Author:
Claude Schneegans

>>It's only ridiculous if you routinely have developers working on the same part of the same files at the same time. This happen evry day with some files, ie: files that contain strings in any language used in the system. But these files are quickly modified, so locking them for a short period of time is not a problem. >> In practice that shouldn't (and doesn't) happen a lot. Whether it happens a lot or not is not the question. The question is being able to properly handle the situation when its happens. And for me, having to handle the merge by hand is not handling the situation at all. >>may I suggest looking for project management tools instead so they aren't all working on the same file at the same time to begin with? Let's say be this is the "correct term" then ;-) -- _______________________________________ REUSE CODE! Use custom tags; See http://www.contentbox.com/claude/customtags/tagstore.cfm (Please send any spam to this address: piegeacon@internetique.com) Thanks.

12/27/2006 04:36 PM
Author:
Claude Schneegans

>>This page covers the different "models" (locking vs. merging) better than I could. http://svnbook.red-bean.com/nightly/en/svn.basic.vsn-models.html Thanks, this is quite clear indeed. Lets say I don't agree AT ALL with neither the cons of the locking solution, neither the pros of the merging. IMO the merging solution implies more overhead and clumsiness than no solution at all. -- _______________________________________ REUSE CODE! Use custom tags; See http://www.contentbox.com/claude/customtags/tagstore.cfm (Please send any spam to this address: piegeacon@internetique.com) Thanks.

12/27/2006 04:49 PM
Author:
Damien McKenna

On 12/27/06 4:35 PM, Claude Schneegans wrote: > Lets say I don't agree AT ALL with neither the cons of the locking > solution, neither the pros of the merging. So tell me, how do you currently cope with multiple developers wanting to make changes to the same file?  Do they download the file from a central server and then make their changes?  Do you restrict developers from working on the same files often?  What if they both actually need to work on the same file over the course of a day or two day's worth of work, do they spend all day juggling the file back 'n forth? Do you have any project management tools in use, like MantisBT (http://www.mantisbt.org/, which I've used for several years and is good stuff), Basecamp, etc?  How do you decide what projects need to be done, what files need to be changed, who does what work, etc?  Revision management tools, like subversion, fit into this and the fact that you aren't seeing this (or don't want to deal with the complexities) suggests that you've already got a nest of problems you may not be aware of. What happens if developer B makes changes to developer A's code and all of a sudden something breaks, e.g. some custom Javascript code that isn't heavily used?  Can you go back to see what was changed, who changed it, what task was being worked on at the time?  Or are you SOL left to pull the entire project apart until you find the problem? Yes, you can develop large applications without revision management, but you shouldn't.  Doing so will cause you problems - maybe not today, maybe not tomorrow, but you can bet that someone is going to get rather upset the day it does and you just better hope that person isn't a client. --  Damien McKenna - Web Developer - dmckenna@thelimucompany.com The Limu Company - http://www.thelimucompany.com/ - 407-804-1014 #include <stdjoke.h>

12/27/2006 05:11 PM
Author:
Claude Schneegans

>>So tell me, how do you currently cope with multiple developers wanting to make changes to the same file? I am just moving from a ONE developer environment to a COUPLE OF developers "team", this is why I used the term "Simple". ;-) >>Do they download the file from a central server and then make their changes? No, everyone has a complete set of files on his PC, develop and test on it, then upload modification on the server, when everything work fine. Then others are warned and the get the new files by FTP from the server. Usually, I create a new sub-directory for any new module to develop, but there are a certain number of files that a common to all modules, like custom tags, application.cfm, language specific text files, etc. >>Do you restrict developers from working on the same files often? Yes, but generally for a short period of time, and we deal with this by telephone or eMail. I was just imagining that there could exist some more efficient method for programmers ;-) >> What if they both actually need to work on the same file over the course of a day or two day's worth of work, do they spend all day juggling the file back 'n forth? The longer they have to work on a file, the more likely they are alone to work on it, so it is not a problem. In this case, the file is locked only for security, it is not really a restriction. -- _______________________________________ REUSE CODE! Use custom tags; See http://www.contentbox.com/claude/customtags/tagstore.cfm (Please send any spam to this address: piegeacon@internetique.com) Thanks.

12/27/2006 04:02 PM
Author:
Douglas Knudsen

he who commits first wins, eh?  Second place entires have to be merged IF there is a conflict.  Sure, lock the files, but this defeats the purpose of 'concurrent versions' to steal a term from the CVS world. DK On 12/27/06, Claude Schneegans <schneegans@internetique.com> wrote:

12/27/2006 04:10 PM
Author:
Claude Schneegans

>>Sure, lock the files, but this defeats the purpose of 'concurrent versions' "who commits first wins", "concurrent versions", "merged IF there is a conflict." are PRECISELY the things I want to avoid. So I guess I didn't use the correct term ;-) But what  would be the correct term then? -- _______________________________________ REUSE CODE! Use custom tags; See http://www.contentbox.com/claude/customtags/tagstore.cfm (Please send any spam to this address: piegeacon@internetique.com) Thanks.

12/28/2006 11:25 AM
Author:
C. Hatton Humphrey

On 12/27/06, Douglas Knudsen <douglasknudsen@gmail.com> wrote: > he who commits first wins, eh?  Second place entires have to be merged IF > there is a conflict.  Sure, lock the files, but this defeats the purpose of > 'concurrent versions' to steal a term from the CVS world. I think the point is that if locking and "concurrency" are mutually exclusive terms.

12/27/2006 05:09 PM
Author:
Pete Ruckelshaus

I'm going to echo the Subversion/TortoiseSVN recommendations. I'm a one man show but I work on two systems and have two development servers, and SVN makes keeping files synced very simple.  I don't do anything beyond the basics with SVN, i.e. add/update/commits, and it's quite simple to use.  Setup isn't quite like falling off a log, more like tripping over one.  Once you get it installed on the server, get it set up as a Windows service using svnserve and you're good to go. If you need more detailed assistance, email me offline and I'll do what I can. Pete

12/27/2006 05:30 PM
Author:
Claude Schneegans

>>If you need more detailed assistance, email me offline and I'll do what I can. Thanks, I downloaded it and I'm presently reading the F*** manual ;-) -- _______________________________________ REUSE CODE! Use custom tags; See http://www.contentbox.com/claude/customtags/tagstore.cfm (Please send any spam to this address: piegeacon@internetique.com) Thanks.

12/28/2006 03:56 PM
Author:
Claude Schneegans

Thanks to everyone for your feedback on that subject. I appreciate all your comments, even if I'm aware that most of them came from people working on fairly large applications, with tens of developers, which is definitely not what I am involved in. But thanks anyway. -- _______________________________________ REUSE CODE! Use custom tags; See http://www.contentbox.com/claude/customtags/tagstore.cfm (Please send any spam to this address: piegeacon@internetique.com) Thanks.

12/28/2006 04:03 PM
Author:
Damien McKenna

On 12/28/06 3:55 PM, Claude Schneegans wrote: > Thanks to everyone for your feedback on that subject. You're very welcome. > I appreciate all your comments, even if I'm aware that most of them came > from people working on fairly large applications, with tens of developers, > which is definitely not what I am involved in. As the saying goes, I'm an army of one, and even for little olde me the benefits *far* outweigh the tiny amount of hassle.  I could probably wager that everyone who uses a revision management system has had their ass(et)s and possibly their jobs saved at least once by using it. --  Damien McKenna - Web Developer - dmckenna@thelimucompany.com The Limu Company - http://www.thelimucompany.com/ - 407-804-1014 #include <stdjoke.h>

12/27/2006 02:54 PM
Author:
Robertson-Ravo, Neil (RX)

First off, great you are looking at Source Control :-) but do not try and recreate a best practice process for it. I would say get SVN and follow standard process for it. Check out to your local machine and check in to the repo together (lock files where necessary). You do not want to be editing files on a prod server, locked or otherwise. "This e-mail is from Reed Exhibitions (Gateway House, 28 The Quadrant, Richmond, Surrey, TW9 1DN, United Kingdom), a division of Reed Business, Registered in England, Number 678540.  It contains information which is confidential and may also be privileged.  It is for the exclusive use of the intended recipient(s).  If you are not the intended recipient(s) please note that any form of distribution, copying or use of this communication or the information in it is strictly prohibited and may be unlawful.  If you have received this communication in error please return it to the sender or call our switchboard on +44 (0) 20 89107910.  The opinions expressed within this communication are not necessarily those expressed by Reed Exhibitions." Visit our website at http://www.reedexpo.com -----Original Message----- From: Claude Schneegans To: CF-Talk Sent: Wed Dec 27 18:58:46 2006 Subject: Simple source control Hi, I've followed about all threads in the list about source control tools, and I'm still wondering if there exists some tool SIMPLE to use and that would do some elementary task and ONLY those. Assuming we have some application on some CF server somewhere, and a team of developers working remotely on it. Each developer has a copy of the application on his own development PC, with CF etc. When his work is completed and tested, he just updates the application on the server by sending all new stuff. The tool I'm looking for would just allow some developer to lock files on the server the time he needs to modify them. During that time, no other developer could make the same request for these files. This operation would also make the same file write enabled on his own PC, so he can edit them. Otherwise, all the files in his project are read-only. When modifications are over, he would just send a request for updating the files. This would simply upload the new files to the server and unlock them, so that other developers could work on them too. The system would also provide for synchronization, so that new files are automatically sent to all developers when they log in. This would require some managing system on the server, and a client module on every development station, probably linked to the server module using AJAX. Any idea about this? -- _______________________________________ REUSE CODE! Use custom tags; See http://www.contentbox.com/claude/customtags/tagstore.cfm (Please send any spam to this address: piegeacon@internetique.com) Thanks.

12/27/2006 03:19 PM
Author:
Claude Schneegans

>>I would say get SVN and follow standard process for it. Well, I'd like to give it a try, but I've never been able to find a link to download it in their site. Even when one clicks on Download, there is nothing to download, except source code. If I have to compile it, this is not what I call "simple". -- _______________________________________ REUSE CODE! Use custom tags; See http://www.contentbox.com/claude/customtags/tagstore.cfm (Please send any spam to this address: piegeacon@internetique.com) Thanks.

12/27/2006 03:20 PM
Author:
Doug Bezona

> Well, I'd like to give it a try, but I've never been able to find a link > to download it in their site. > Even when one clicks on Download, there is nothing to download, except > source code. > If I have to compile it, this is not what I call "simple". http://svn1clicksetup.tigris.org/

12/27/2006 03:55 PM
Author:
Dawson, Michael

This sounds like a job for Dreamweaver.  However, if you are wanting a free/cheap solution, DW may not be it. However, DW's site management features, such as the testing server, remote server and check-in/-out may do what you need. Hi, I've followed about all threads in the list about source control tools, and I'm still wondering if there exists some tool SIMPLE to use and that would do some elementary task and ONLY those. Assuming we have some application on some CF server somewhere, and a team of developers working remotely on it. Each developer has a copy of the application on his own development PC, with CF etc. When his work is completed and tested, he just updates the application on the server by sending all new stuff. The tool I'm looking for would just allow some developer to lock files on the server the time he needs to modify them. During that time, no other developer could make the same request for these files. This operation would also make the same file write enabled on his own PC, so he can edit them. Otherwise, all the files in his project are read-only. When modifications are over, he would just send a request for updating the files. This would simply upload the new files to the server and unlock them, so that other developers could work on them too. The system would also provide for synchronization, so that new files are automatically sent to all developers when they log in. This would require some managing system on the server, and a client module on every development station, probably linked to the server module using AJAX. Any idea about this?

12/27/2006 04:06 PM
Author:
Claude Schneegans

>>This sounds like a job for Dreamweaver. I read somewhere that this feature what buggy in DW, and I'd rather have an editor independent tool. If the tool could just mark local files as read-only, any editor opening the file will tell its user he cannot modify it. Then he could use the client module of the system for some options like being warned when the files are available, or reserve them, have the list of other files which are locked or unlocked, etc. -- _______________________________________ REUSE CODE! Use custom tags; See http://www.contentbox.com/claude/customtags/tagstore.cfm (Please send any spam to this address: piegeacon@internetique.com) Thanks.

12/27/2006 04:14 PM
Author:
Damien McKenna

On 12/27/06 4:05 PM, Claude Schneegans wrote: >>> This sounds like a job for Dreamweaver. > > I read somewhere that this feature what buggy in DW, and I'd rather have > an editor independent tool. Yes, it is.  It also works off the production server, which isn't a good idea anyway. --  Damien McKenna - Web Developer - dmckenna@thelimucompany.com The Limu Company - http://www.thelimucompany.com/ - 407-804-1014 #include <stdjoke.h>

12/27/2006 04:08 PM
Author:
Doug Bezona

Really the concept was WAY better than the execution here. Dew's check-in/check-out is rudimentary (I'm being kind), and the locking is extremely fragile...not to mention not enforced at all (you can simply unlock it on demand) And it's not doing actual source control - you can't, say, revert back to previous versions of a file, or compare versions to see who made what change when, or deploy multiple versions of an app from a single repository. It's just a "convenience" feature that I think causes more problems than it solves. Oh, and if by chance someone isn't using Dreamweaver, well.... > This sounds like a job for Dreamweaver.  However, if you are wanting a > free/cheap solution, DW may not be it. > > However, DW's site management features, such as the testing server, > remote server and check-in/-out may do what you need.

12/27/2006 04:41 PM
Author:
Ian Skinner

IMO the merging solution implies more overhead and clumsiness than no solution at all. I'm no expert and we currently use locking model tools, Dreamweaver and|or Visual Source Safe.   But I would like to point out that the merging still goes on, it just happens at a different point.   With locking, after developer A has checked in a file so developer B can now edit it.  Developer B is still going to have to frequently at least review what changes where made to the file so that (s)he understands them and how them may or may not affect the task they are about to use the file for. -------------- Ian Skinner Web Programmer BloodSource www.BloodSource.org Sacramento, CA --------- | 1 |   | ---------  Binary Soduko |   |   | --------- "C code. C code run. Run code run. Please!" - Cynthia Dunning Confidentiality Notice:  This message including any attachments is for the sole use of the intended recipient(s) and may contain confidential and privileged information. Any unauthorized review, use, disclosure or distribution is prohibited. If you are not the intended recipient, please contact the sender and delete any copies of this message.

12/27/2006 05:00 PM
Author:
Claude Schneegans

>>Developer B is still going to have to frequently at least review what changes where made to the file so that (s)he understands them and how them may or may not affect the task they are about to use the file for. If I had to develop such a tool, this would be done automatically, either when developer B re logs-in, either during he is logged, via AJAX. When he logs, he actually opens his browser on a page in his client module, this page would check for modifications in the application regularly, download every new file, and lock (mark read-only) his own files when other developers lock files on the server. -- _______________________________________ REUSE CODE! Use custom tags; See http://www.contentbox.com/claude/customtags/tagstore.cfm (Please send any spam to this address: piegeacon@internetique.com) Thanks.

12/27/2006 04:56 PM
Author:
Steve Brownlee

Claude: When working with code repositories, the first thing each developer does is download the current version of the entire repository.  This is called their working copy.  When you give them an issue/defect to work on, they... 1. Lock the file (noted on the server) 2. Download the HEAD revision - the latest copy of the code - in case someone else has changed it since their last download 3. Start working on their job Then once they are finished with their files, they commit them.  This does two things... 1. Releases the lock on the server 2. Makes the file read-only on their working copy again You can work on any file on your disk ad inifinitum, however, source control only kicks it when a developer COMMITS the file back to the server. You could then also specify one of your developers as a build coordinator.  Before the code gets put into the main tag (you usually don't want to build off of the HEAD revision) they download the code from each issue and tests that it a) fixes the defect correctly, and b) does not cause conflicts with other code.  Again, this step it optional and for complex projects. CVS and SVN both support file locking on the server.  If you do not want to support file locking, you then move the responsibility of build coordinator to each developer.  If they commit a file and the server notifies them of conflicts, it is then their responsibility to merge the code, test it thoroughly again, and then re-commit the file. Hope that helps, Steve Brownlee http://www.fusioncube.net/ >>If I have the file checked out and someone else attempts to download the file, So you mean one has to download every file he wants to work on? What if he opens a copy of the file he already has on his disk?

12/27/2006 05:28 PM
Author:
Claude Schneegans

>>1. Lock the file (noted on the server) >>2. Download the HEAD revision - the latest copy of the code - in case >>someone else has changed it since their last download >>3. Start working on their job >>Then once they are finished with their files, they commit them.  This >>does two things... >>1. Releases the lock on the server >>2. Makes the file read-only on their working copy again This is almost how I imagined it. The only thing, do they have to look by themselves for the new things to update, or is this automatically done during some login procedure ? -- _______________________________________ REUSE CODE! Use custom tags; See http://www.contentbox.com/claude/customtags/tagstore.cfm (Please send any spam to this address: piegeacon@internetique.com) Thanks.

12/27/2006 05:49 PM
Author:
Steve Brownlee

I'm assuming you mean the other developers - the ones who did not modify the code for a specific issue.  Yes, they would then have to manually grab the latest revision (whether it be HEAD or some variation of a "current build" tag).  For example, in Eclipse/SVN, you go to the "Team > Update" selection on your project.  This then downloads any file that has a different version (on the same tag) than the one on your disk.  So if you pulled down your working copy a week ago and ten files had been committed since then, that command would pull down all ten files. I'm not sure if this is a feature that you see as a con, but since the procedure takes about 2 seconds to complete, it's not something to be concerned about. Steve Brownlee http://www.fusioncube.net/ >>1. Lock the file (noted on the server)  >>2. Download the HEAD revision - the latest copy of the code - in case  >>someone else has changed it since their last download  >>3. Start working on their job >>Then once they are finished with their files, they commit them.  This >>does two things... >>1. Releases the lock on the server >>2. Makes the file read-only on their working copy again This is almost how I imagined it. The only thing, do they have to look by themselves for the new things to update, or is this automatically done during some login procedure ?

12/27/2006 07:46 PM
Author:
Claude Schneegans

>>I'm not sure if this is a feature that you see as a con, but since the procedure takes about 2 seconds to complete, it's not something to be concerned about. The only thing is I wonder why this is not automatic when the user logs in. -- _______________________________________ REUSE CODE! Use custom tags; See http://www.contentbox.com/claude/customtags/tagstore.cfm (Please send any spam to this address: piegeacon@internetique.com) Thanks.

12/27/2006 09:40 PM
Author:
Douglas Knudsen

when the user logs into what?  I tell my team all the time, nothing in SCM is automagic, users have to go and fetch the latest versions.  Its really simple in Eclipse, right-click > Team > Update...done! Here's another neato thing about using CVS or SVN....automated code pushes! Using  asimple ANT script, you can get all th latest code from the repository and push it to a server....bammm! DK On 12/27/06, Claude Schneegans <schneegans@internetique.com> wrote:

12/28/2006 11:30 AM
Author:
Claude Schneegans

>>when the user logs into what? Well, there must be some repository manager on the server, no? >>users have to go and fetch the latest versions.  Its really simple in Eclipse, right-click > Team > Update...done! Ok, but what if they don't? They can create a new version from an absolete copy? >>Using  asimple ANT script, you can get all th latest code from the >>repository and push it to a server....bammm! ... and overwrite some more latest code already pushed by someone else?.... BADAMMMM! ;-) -- _______________________________________ REUSE CODE! Use custom tags; See http://www.contentbox.com/claude/customtags/tagstore.cfm (Please send any spam to this address: piegeacon@internetique.com) Thanks.

12/28/2006 11:34 AM
Author:
Damien McKenna

On 12/28/06 11:28 AM, Claude Schneegans wrote: So?  You have a complete record of all changes made so it is easy to go back and see what has changed. >> Using  asimple ANT script, you can get all th latest code from the >> repository and push it to a server....bammm! > > .... and overwrite some more latest code already pushed by someone > else?.... BADAMMMM! ;-) See above.  You have all of the previous versions available to you so you can easily fix things, as opposed to being stuck not knowing what modifications have been made. --  Damien McKenna - Web Developer - dmckenna@thelimucompany.com The Limu Company - http://www.thelimucompany.com/ - 407-804-1014 #include <stdjoke.h>

12/28/2006 11:38 AM
Author:
Claude Schneegans

>>You have all of the previous versions available to you so you can easily fix things, Well, I may be wrong, but my vision of a source control system is to manage things so that they don't need to be fixed.;-) If it is  to create problems and  then fix them, I don't really need any tool for this ;-) -- _______________________________________ REUSE CODE! Use custom tags; See http://www.contentbox.com/claude/customtags/tagstore.cfm (Please send any spam to this address: piegeacon@internetique.com) Thanks.

12/28/2006 11:45 AM
Author:
Damien McKenna

On 12/28/06 11:37 AM, Claude Schneegans wrote: >> You have all of the previous versions available to you so you >> can easily fix things, > > Well, I may be wrong, but my vision of a source control system is to > manage things so that they don't need to be fixed.;-) There's only so much magic a tool can do for you, at some point you are going to have to, you know, do some work too.  If your developers aren't able to cope with not messing up each other's work then you should either give them the tools they need to more easily work as a team (i.e. svn, Mantis, etc) or get them a new project manager who understands team workflows.  I've worked with people who didn't understand this need and ultimately they killed the company (over 100 jobs) due to their lack of knowledge. > If it is  to create problems and  then fix them, I don't really need any > tool for this ;-) SVN *fixes* problems, not create them.  You already have a huge problem given that you have no revision management, SVN is a solution to this problem and something like Mantis or Trac can help you manage the development team to coordinate everyone's efforts. --  Damien McKenna - Web Developer - dmckenna@thelimucompany.com The Limu Company - http://www.thelimucompany.com/ - 407-804-1014 #include <stdjoke.h>

12/28/2006 11:53 AM
Author:
Doug Bezona

> Well, I may be wrong, but my vision of a source control system is to > manage things so that they don't need to be fixed.;-) No system can entirely prevent human error (and modifying stale code because you didn't do an update is human error), source control systems just dramatically reduce the impact when they occur. All source control systems in existence, regardless of the model, require a certain amount of knowledge and discipline from the developers to use properly, but it's still far less problematic than not using such a system and having your code being arbitrarily edited by multiple people with no way to track who changed what when, and to recover from the problems that inevitably arise. > If it is  to create problems and  then fix them, I don't really need any > tool for this ;-) Yeah, source control is all about creating problems. That's why everyone uses it - we just like making problems for ourselves. *sigh*

12/28/2006 11:37 AM
Author:
Michael Traher

On 12/28/06, Claude Schneegans <schneegans@internetique.com> wrote: > > > > .... and overwrite some more latest code already pushed by someone > else?.... BADAMMMM! ;-) What happens is that you always deploy from the repository - not from an individuals copy. so you deploy from the latest committed version. -- Mike T Blog http://www.socialpoints.com/

12/28/2006 11:44 AM
Author:
Doug Bezona

>  >>when the user logs into what? > > Well, there must be some repository manager on the server, no? There is - it comes into play when the user performs an operation against the repository, i.e. an update or a commit. Since your working copy is a disconnected resource until you initiate an interaction with a repository, you can't really force an update when the user simply looks at their files. If they don't, and the files they are checking in are out of synch with the repository, then they have to go through the merge process. Merging is fairly painless if you are working with up-to-date code, but can be painful if you started from a copy that is several revisions out of date. Believe me, if this sort of thing happens to a developer more than a couple of times, they tend to get much more responsible about keeping their working copy updated in the future. You will likely find in practice that developers tend to update more often than necessary to avoid this sort of thing as opposed to not frequently enough. Generally, you don't just arbitrarily deploy whatever is newest. This is why source control systems have the ideas of branching and tagging, and why you can export specific revisions of the code. Your deployment process is something you would have to determine based on your release schedule/requirements. The point is that the mechanics of doing a deployment can be made very simple by combining the functionality of the source control system with something like Ant to automate the process.

12/28/2006 11:57 AM
Author:
Jochem van Dieten

Claude Schneegans wrote: >> when the user logs into what? > > Well, there must be some repository manager on the server, no? Yes. But why would would you want to automatically download code from there? Only exchange code with the repository when you explicitly want to and have authorized the changesets going in both ways. Of course. That is how you fix bad fixes. You just have to jump through a few hoops when you want to check in code based on old code because a conflict will be detected and you need to manually resolve the conflict and overwrite the new version. There is no 'more latest code'. The repository is authoritative, if the repository says it is the latest code it is the latest code. Jochem

12/28/2006 12:09 PM
Author:
Claude Schneegans

>>Yes. But why would would you want to automatically download code from there? To make sure that a programmer will get the last version before he starts working on a file. At least, this should be checked by the system when a user request a lock on a file. -- _______________________________________ REUSE CODE! Use custom tags; See http://www.contentbox.com/claude/customtags/tagstore.cfm (Please send any spam to this address: piegeacon@internetique.com) Thanks.

12/28/2006 12:23 PM
Author:
Jochem van Dieten

Claude Schneegans wrote: Personally I think consistency is much more important then recency. I wouldn't want to start working on version 4 of file X, then check out file Y a few hours later only to discover that somebody updated the repository and I get version 6 of file Y that conflicts with version 4 of file X. I would want to continue working on version 4 of file Y until my part works, update my working copy with the changes from the repository for both file X and file Y, check the functionality and then push them both to the repository. If I do that, at every point in time both the repository and my working copy are consistent. Jochem

12/28/2006 01:02 PM
Author:
Michael Traher

Hi Claude, I think many of us who have implemented source control will recognize the issues and concerns you are grappling with - they are quite natural. What I would say is that I wish I had tried a pilot of CVS/SVN sooner rather than all the worrying and discussing I did over a couple of months :-) In other words give it a try on a smallish project maybe even a pretend project and play out several of the scenarios that concern you. Even before we had deployment fully sorted out, having CVS was far better than not having it. On 12/28/06, Claude Schneegans <schneegans@internetique.com> wrote:

12/27/2006 10:23 PM
Author:
Steve Brownlee

There's a very good reason for it.  Your developers may not want the latest code - they may be working on entirely different branches of the code, or they may be writing test code locally that don't want to be overwritten. Basically, the designers of these source control systems wrote them for the LCD.  Each individual user has control over which version of the code that they have on their machine.  There are a myriad of reason why this would be so.  For your needs, this may not make sense, but for projects that have dozens of developers, automatically downloading the latest code to their machines every time they start up their editor is a disastrously bad idea. Let's say Developer A checks in code that has bugs in it.  Happens every day.  Now, Developer B who's happily working away on a stable copy of the code comes into work the next day, fires up Eclipse, does some work and starts testing the application and things start breaking all over the place. He has no idea that Developer A checked in code, what that code does, or why it's now breaking his code.  It'd be a nightmare. Steve Brownlee http://www.fusioncube.net/

12/28/2006 03:32 AM
Author:
Robertson-Ravo, Neil (RX)

Indeed, there should only be some occasions when an update each day may be required such as when a new feature is just added and everyone needs it for their work. The use of SVN etc is way more advanced than the old VSS system which is effectively just a store of files to get ba