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

Reply via email to