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) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~| Create robust enterprise, web RIAs. Upgrade & integrate Adobe Coldfusion MX7 with Flex 2 http://ad.doubleclick.net/clk;56760587;14748456;a?http://www.adobe.com/products/coldfusion/flex2/?sdid=LVNU Archive: http://www.houseoffusion.com/groups/CF-Talk/message.cfm/messageid:265135 Subscription: http://www.houseoffusion.com/groups/CF-Talk/subscribe.cfm Unsubscribe: http://www.houseoffusion.com/cf_lists/unsubscribe.cfm?user=89.70.4

