Help - Search - Members - Calendar
Full Version: Simple Version Control Application?
Hydrogenaudio Forums > Misc. > Off-Topic
Synthetic Soul
Can anyone suggest a, preferably free or open source, version control system?

I was just thinking the other day about the batch files I write, and how it would be sensible to version control them.

However, installing/using Visual SourceSafe (and certainly CVS) just seems like overkill. I just want something really basic.

If I have to I'll go with VSS, but I thought I would ask the question as I like to learn about new applications.

----------------------------------------------------------

In conjunction with this I have, what I think is, a really nice solution which I would appreciate any opinions on.

My first thought was that it would be cool for a text file to be able to record it's own version history - so you had all the data in one place. However, I soon realised that this would mean that you would be creating a proprietary format, which would then require support from all major editors to be successful/remotely useful. Not much use.

I have been looking at diff and patch, and think that diff text is the way to go.

I have devised the system whereby an application would monitor a folder, or a number of folders. Any file with a known extension added in that folder would result in a .hist file being created - e.g.: "wv-verify.bat" would result in "wv-verify.bat.hist".

The .hist file would hold the original version of the file to begin. On each edit of the file the diff text would be added to the .hist file. The diff text would be calculated by creating a virtual "previous" version from the .hist file by sequentially applying all recorded diff texts to the initial version, and then calculating the new diff text from this calculated version with the latest version.

In this way the .hist file would maintain a full history of the file, by appending only the changes (diff text) upon each edit.

The folder monitoring means that the user does not have to worry about the source control in the slightest. As long as all their files are in the watched folder things take care of themselves.

The application would obviously then require some simple methods to revert a file to a previous version, compare versions, etc.

Each diff text would be preceded by a header like:

### wv-verify.bat @ 2005-10-03 11:45:53 ###

... so that the app could date the version.

I spoke about this with a colleague and he, being the pain he is, suggested you could even right click on a folder and create a VSS-style "label". I guess context menu items could be added to watched or .hist files for certain operations.

The benefit of this simplicity is that you can easily share a file and it's full history - which is merely a text file in itself. Users could even just use diff or patch with the included text if they had no interest in using my application.

Any thoughts? smile.gif

A simple example of a .hist file (file1.txt.hist, referencing file1.txt now at version 3):

CODE
Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet.

Duis autem vel eum iriure dolor in hendrerit in vulputate velit esse molestie consequat, vel illum dolore eu feugiat nulla facilisis at vero eros et accumsan et iusto odio dignissim qui blandit praesent luptatum zzril delenit augue duis dolore te feugait nulla facilisi. Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat.

Ut wisi enim ad minim veniam, quis nostrud exerci tation ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo consequat. Duis autem vel eum iriure dolor in hendrerit in vulputate velit esse molestie consequat, vel illum dolore eu feugiat nulla facilisis at vero eros et accumsan et iusto odio dignissim qui blandit praesent luptatum zzril delenit augue duis dolore te feugait nulla facilisi.

Nam liber tempor cum soluta nobis eleifend option congue nihil imperdiet doming id quod mazim placerat facer possim assum. Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat. Ut wisi enim ad minim veniam, quis nostrud exerci tation ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo consequat.

Duis autem vel eum iriure dolor in hendrerit in vulputate velit esse molestie consequat, vel illum dolore eu feugiat nulla facilisis.

At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, At accusam aliquyam diam diam dolore dolores duo eirmod eos erat, et nonumy sed tempor et et invidunt justo labore Stet clita ea et gubergren, kasd magna no rebum. sanctus sea sed takimata ut vero voluptua. est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat.

Consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet.
### file1.txt @ 2005-10-03 01:10:50 ###
1c1
< Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua.
---
> Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet.
3,5c3
< At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet.
<
< Duis autem vel eum iriure dolor in hendrerit in vulputate velit esse molestie consequat, vel illum dolore eu feugiat nulla facilisis at vero eros et accumsan et iusto odio dignissim qui blandit praesent luptatum zzril delenit augue duis dolore te feugait nulla facilisi. Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpar.
---
> Duis autem vel eum iriure dolor in hendrerit in vulputate velit esse molestie consequat, vel illum dolore eu feugiat nulla facilisis at vero eros et accumsan et iusto odio dignissim qui blandit praesent luptatum zzril delenit augue duis dolore te feugait nulla facilisi. Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat.
8,9d5
<
< Some new text here I think.
### file1.txt @ 2005-10-03 02:30:40 ###
15c15
< At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, At accusam aliquyam diam diam dolore dolores duo eirmod eos erat, et nonumy sed tempor et et invidunt justo labore Stet clita ea et gubergren, kasd magna no rebum. sanctus sea sed takimata ut vero voluptua. est Lorem ipsum dolor sit amet. Add some here, mid paragraph. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat.
---
> At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, At accusam aliquyam diam diam dolore dolores duo eirmod eos erat, et nonumy sed tempor et et invidunt justo labore Stet clita ea et gubergren, kasd magna no rebum. sanctus sea sed takimata ut vero voluptua. est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat.
Dibrom
As far as free revision control systems go, as a Haskell fan I'd suggest trying out Darcs. There's a manual as well as a wiki with examples linked to on the homepage. The manual will probably suggest building the system, but it looks like binaries are available too. Although I haven't tried Darcs myself yet, I've continually heard great things about it from various people to the effect that its quite nice and also easy to use. I'm planning on trying it out for an upcoming project of mine at least.

You could also check out Subversion.

Both still may be overkill for your purposes, but I suspect that Darcs is probably going to be easier to setup and use than Subversion, so maybe it'll work out for you.

I don't really have time to read through the details of your homebrew system atm, but one obvious advantage of going with something like Darcs or Subversion is that you'll have more features available to you. Whether or not you need them is another story.
kwanbis
I know TortoiseCVS has some explanations on that on their FAQ:

How do I set up a personal repository to use without a server?

You don't need any other software installed to make a local repository. Simply follow these steps:

1. Prepare a folder with the files you want under version control.
2. Right click on the folder and choose Make New Module from the CVS submenu.
3. Select the "Locally mounted directory" protocol.
4. In the directory section, enter where you would like your repository to be.
5. After selecting OK, you will be asked to confirm creation of a new repository. Select the checkbox to confirm this, and click OK.
6. You can now add the files within your folder to CVS, and work with it as described in the User's Guide.

TortoiseCVS can also offer to initialise a new repository on a remote server, provided you have permissions.

http://www.tortoisecvs.org/faq.shtml#cvsinit
Synthetic Soul
Thanks for the suggestions so far. Darcs sounds good, but is command line based. I'm really interested in something my granny could use. I have taken a very brief look at Darcs, Subversion, CVS, TortoiseCVS, TortoiseSVN, Monotone and BitKeeper.

QUOTE(Dibrom @ Oct 5 2005, 02:48 PM)
I don't really have time to read through the details of your homebrew system atm, but one obvious advantage of going with something like Darcs or Subversion is that you'll have more features available to you.  Whether or not you need them is another story.

Exactly. The obvious disadvantage being that these systems are often daunting to set up and administer. The more I've investigated the more I am beginning to believe that there really is a place, even a requirement, for a simple versioning system similar to the one that I have proposed. Interestingly, I noted the mention of diff in one FAQ, which made me think that my methodology may not be complete madness.

QUOTE(kwanbis @ Oct 5 2005, 03:27 PM)
I know TortoiseCVS has some explanations on that on their FAQ:

Have you used TortoiseCVS? Both TortoiseCVS (based on CVS[NT]) and TortoiseSVN (based on SubVersion) do look, at least, user-friendly. I'm tempted to have a play. Again though, being based on two extensive products like CVS and SubVersion, they would be overkill for a basic requirements need. In this instance I would probably just stick with VSS, which I know.

Am I missing something here? All the products I've seen are setup for multi-developer, multi-platform, multi-location, client-server needs.

Surely there must be numerous one-man-band software, or web, developers that need to keep control of their source/html files without the need of an expensive or extensive application that needs a week of training?

I guess VSS gets used in these situations... or have I actually found a niche?
Triza
I am surprised nobody mentioned the obvious choice:

What you need is RCS.

I use RCS for individual files. All my config files and scripts are under RCS. Fortunately I use Linux so all files are text files.
Lyx
I was very confused about CVS in the past - and when i used SVN a year later i found it much easier. If you're on windows, then a very easy client is TortoiseSVN. It is embedded into the windows shell, versioned files get overlayed with SVN-icons and it includes a diff-viewer.

Since i dont know RCS yet, i'm not sure if that one may make more sense in your case.
Synthetic Soul
I got the impression previously that RCS was simply the predecessor to CVS. I've had a look for a Windows version of RCS and there doesn't really seem that much to choose from. I may spend a little more time investigating today.

I actually installed TortoiseSVN last night, simply as it looked a little more aesthetic than TortoiseCVS. It does seem to integrate nicely, but as I say, if I have to go that complex I will just stick with VSS, which I know. Although to be fair TortoiseSVN is probably more user-friendly than VSS. I may have more o a play - it's just something else to learn though, and I don't have much time at the moment.


To stop wasting people's time: I'm basically interested in seeing a single-developer (no client/server, no multi-user... maybe no check in/out), Windows, GUI application. I haven't seen anything like that, but I feel as though there must be a market.


I'm disappointed that no-one has commented on my suggestion for such a system (first post), even if to tell me I'm mental.

I did actually think last night that there may be issues with recording changes at every save. When I'm working on a web page or even debugging a script I can save many many times but don't want each of those saves as a "version". This suggests to me that an extra step would be required to merge inter-version edits into one - so each edit was recorded in the .hist file, but a call like "Merge all post version changes" will merge all those diff texts into one, which then represents a version, not an edit. So there would be a distinction in the .hist file between edit diffs and version diffs. This extra step is getting away from the purity of the original concept, but is still a long way from dealing with CVS!
k.a.r.l.2000
QUOTE(Synthetic Soul @ Oct 6 2005, 03:42 AM)
To stop wasting people's time:  I'm basically interested in seeing a single-developer (no client/server, no multi-user... maybe no check in/out), Windows, GUI application.  I haven't seen anything like that, but I feel as though there must be a market.

I'm disappointed that no-one has commented on my suggestion for such a system (first post), even if to tell me I'm mental.


You're not mental! I came upon this post searching for the same thing. I've used CVS but never installed anything on a server, didn't want to start now.

This is the simplest how-to I found...
http://www.ivantodorov.com/blog/?p=28
... it explains how to set-up SubVersion and TortoiseSVN locally on WinXP.
All the software is free, took me 30 min to set up, no server required.

However, I feel like I got lucky. The set-up process was far from foolproof, and people unfamiliar with CVS or SVN might want a more detailed walkthrough.

Dibrom
QUOTE(Synthetic Soul @ Oct 5 2005, 07:58 AM)
Thanks for the suggestions so far.  Darcs sounds good, but is command line based.  I'm really interested in something my granny could use.


Although darcs is commandline based, it is significantly easier to use than just about any revision control system I have tried before, whether through a CLI or GUI interface. Really, it's trivial.

Steps to setup darcs (the following will create an "instance" of a darcs repository, and you can have as many of these as you like):

  • Download and install binaries. Might need to add darcs binary to your path
  • cd to your project directory (the directory you want to become a repository instance)
  • run "darcs initialize"
  • run "darcs add *.c *.h *.whatever some.other.file" (add files for darcs to watch for changes)
  • run "darcs record --all"

That's it. No server to setup. No accounts to setup. No special directory layouts to create. All of these things that are typically issues with other systems are implicitly handled in darcs, in large part due to the unique nature with which it handles the concept of "patches" and its essentially decentralized nature (every user of the project automatically gets their own local repository which is spawned off the initial one (or at least another one which was) when they do a "checkout", rather than using a single monolithic one like with cvs or svn).

Whenever you make a change to one of the files, just run "darcs whatsnew" and it will print out a report of changes in the files you previously specified. If you want to commit the changes permenantly, run "darcs record" or "darcs record --all" again. If you decide you don't want to keep the changes, run "darcs revert" or "darcs revert --all". Run "darcs changes" to see all of the changes that have been committed to the repository so far.

To get a copy of the repository (i.e., spawn another local repository as I mentioned above) from somewhere else (e.g., from another directory or another machine), just run "darcs get someurl" where someurl can be either a local filesystem url or an http address. This means, to make your darcs repository available, you don't need a special server (darcs is meant to be a decentralized system) -- standard local/networked file system or http access is enough. Once you have run "get" the first time, you can just get the changes next time by "darcs pull someurl" instead.

There's not much else to it really, unless you're doing something really advanced. The basic commands are so simple that if you really, really needed a GUI for some strange reason, you could easily wrap the darcs command in some scripting language.

I think this would really be a better solution than some homebrew scripts which aren't going to be as powerful (or probably as reliable), but ymmv.

QUOTE
Exactly. The obvious disadvantage being that these systems are often daunting to set up and administer.


Not darcs. You can be up and running within a couple minutes of downloading the binary.

QUOTE
The more I've investigated the more I am beginning to believe that there really is a place, even a requirement, for a simple versioning system similar to the one that I have proposed.


Honestly, I'm not sure how it can get a lot simpler than darcs. Did you read through the "Getting Started" guide at all?
Synthetic Soul
Well, it's been a while since I started this thread.

I actually made some progress on my own "homebrew scripts" - I had some VB.NET classes to perform diff and patch procedures, and a revision header system all set up. However, I just couldn't find the time to pursue it. I'm not saying that it would ever replace darcs - but I would have liked to have seen it through to the end.

I reverted to VSS, which is a product I know midly well.

However, considering your persistence with darcs I have this morning taken another look, and, as you said, I have created myself a repository in a matter of minutes.

I'm actually now (in contradiction to my original post I guess) quite intrigued about the possibility of running from a webserver respository. The amendments I make to my batch files, Tag, etc. are sometimes made at work and sometimes at home. It would be cool to be able to sync the source using darcs rather than transferring files on a flash pen or email. Unfortunately it seems like I would need administrator access to do this properly, and I can't run a webserver from my home machine as the IP is dynamic.

That said, it only took me another fifteen minutes to work out how to store a repository on my webspace. I just need to work out how to utilise it from two locations now - although the whole system makes logical sense so far - the local _darcs directory is simply to understand and copy. I'm sure it will only be a little more time before I've sussed it.

I'm going to keep playing with darcs, and maybe I'll report back in a while. Thanks for persisting.
Lyx
QUOTE(Synthetic Soul @ Dec 17 2005, 01:47 PM)
Unfortunately it seems like I would need administrator access to do this properly, and I can't run a webserver from my home machine as the IP is dynamic.
*


Dynamic-IP DNS-services solve that. Like i.e. dyndns.com, etc.
Dibrom
QUOTE(Synthetic Soul @ Dec 17 2005, 04:47 AM)
That said, it only took me another fifteen minutes to work out how to store a repository on my webspace.  I just need to work out how to utilise it from two locations now - although the whole system makes logical sense so far - the local _darcs directory is simply to understand and copy.  I'm sure it will only be a little more time before I've sussed it.

I'm going to keep playing with darcs, and maybe I'll report back in a while.  Thanks for persisting.
*



I'm glad you seem to like it. I didn't mean to insult your efforts by calling them "homebrew scripts" either, but I know that it would not be easy to create a system that worked well and was both powerful and reliable. Some of these systems have had a lot of time and thought put into them that would be difficult to replicate without a similar effort all over again.

As for your situation using darcs from 2 locations, the "easiest" way to handle this is to setup your home darcs repository on a webserver, like you mentioned. Your work repository should be on a webserver too. Then, just "pull" the changes back and forth across repositories. Because of the unique way in which darcs is designed, the operations of pushing and pulling changes across repositories are basically symmetrical in nature (i.e., pushing changes to repository2 from repository1 is the same as pulling changes from repository1 to repository2). You can setup a situation where you use "pushing" but in your case that will probably create unnecessary complexity.

So here's how I'd do it:
  1. Get your repository on the home machine setup and accessible from a web url (also setup web access with another url for your future work repository).
  2. Next time you're at work, do a "darcs get yourhomemachinerepositoryurl" (don't copy _darcs manually). This will create a new repository instance on your work machine.
  3. Make some changes on your work repository.
  4. When you go home, go to your home repository directory and run "darcs pull yourworkmachinerepositoryurl" (you don't need to do a full "get" because you already have a local copy -- you only want to "pull" the changes)
  5. Make some changes on your home repository
  6. When you get to work, run "darcs pull yourhomemachinerepository" again.
  7. Continue repeating steps 4-6 (now you can just keep making changes on one repository, and then pulling them to the other one next time.)
Hope that helps wink.gif
Synthetic Soul
QUOTE(Lyx @ Dec 17 2005, 03:36 PM)
Dynamic-IP DNS-services solve that. Like i.e. dyndns.com, etc.
Thanks, I'll take a look. I've never heard of this before.

QUOTE(Dibrom @ Dec 17 2005, 06:23 PM)
I didn't mean to insult your efforts by calling them "homebrew scripts" either, but I know that it would not be easy to create a system that worked well and was both powerful and reliable.  Some of these systems have had a lot of time and thought put into them that would be difficult to replicate without a similar effort all over again.
No, that's fine, they are homebrew. It was never going to be something good enough to distribute, but I would have just liked to have done a proof of concept.

QUOTE(Dibrom @ Dec 17 2005, 06:23 PM)
  1. Get your repository on the home machine setup and accessible from a web url (also setup web access with another url for your future work repository).
  2. Next time you're at work, do a "darcs get yourhomemachinerepositoryurl" (don't copy _darcs manually).  This will create a new repository instance on your work machine.
  3. Make some changes on your work repository.
  4. When you go home, go to your home repository directory and run "darcs pull yourworkmachinerepositoryurl" (you don't need to do a full "get" because you already have a local copy -- you only want to "pull" the changes)
  5. Make some changes on your home repository
  6. When you get to work, run "darcs pull yourhomemachinerepository" again.
  7. Continue repeating steps 4-6 (now you can just keep making changes on one repository, and then pulling them to the other one next time.)
Hope that helps wink.gif
Thanks for your time and the advice - I'll definately give it a try. The more I think about it the more I really like the idea of a shared repository.
Otto42
On Windows, I use TortoiseCVS now. Very, very easy to use. For version control on your own system, it needs no server at all. Also I use it to get code from sourceforge easily, from time to time.

It's really not complex. The only thing that's at all complex about it is creating the initial repository, and for local protocol that's pretty easy. Basically, you link a folder full of code or whatever to a repository. After you make changes, you right click the folder and Commit the changes. It does it's thing and you type in a description of the changes (for history keeping) and then hit ok. Done and done. You do the same thing to get stuff out of the repository.. Just pick Update to copy from the repository to the directory. CVS has all this extra stuff, but nobody says you have to use any of it.
Dibrom
QUOTE(Synthetic Soul @ Dec 17 2005, 12:03 PM)
Thanks for your time and the advice - I'll definately give it a try.  The more I think about it the more I really like the idea of a shared repository.
*



No problem.

In fact, one thing I probably should have also mentioned is that you can basically try an experimental run of this process on your local machine, if you'd like to play with the idea and see how it works.

You could do it like this:

CODE

$ mkdir homelocation; mkdir worklocation
$ cd homelocation
$ mkdir project
$ cd project
$ echo "foo" > foo.txt
$ darcs initialize
$ darcs add foo.txt
$ darcs record --all
$ cd ../../worklocation
$ darcs get ../homelocation/project
$ cd project
$ echo "bar baz" >> foo.txt
$ darcs record --all
$ cd ../../homelocation/project
$ darcs pull ../../worklocation/project


Now you have 2 seperate repositories setup and you can make changes to either one, then pull them to the other as I showed in the last line. This is the exact same way you would do it in your situation, except instead of pulling from 1 of 2 local directories, you'd be using http urls instead.

Anyway, guess that's probably more detail than is needed, but I was bored and figured other people might be interested as well wink.gif Darcs really is an amazingly easy to use, yet very powerful tool. It has definitely changed the way I handle revision control issues (the main result is I use it much more often now smile.gif)
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Invision Power Board © 2001-2008 Invision Power Services, Inc.