What VCS system to use ?

scott:

how many times it tooks you to be back as productive as when you do not use VCS ?

All:
the learning time (for using a new software) slow down your productivity, then you came to be as productive as before and when chances are on, you even can be more productive than before (most of the time, or get the same productivity, but your work can be better).

Thus my above question.

I’ve never used SourceTree or any Git-type solution. I currently use TortoiseSVN. With SourceTree, is it cloud-based or can you store the repository on a local network (or optional for both)?

You can do either.

[quote=49531:@Emile Schwarz]scott:

how many times it tooks you to be back as productive as when you do not use VCS ?

All:
the learning time (for using a new software) slow down your productivity, then you came to be as productive as before and when chances are on, you even can be more productive than before (most of the time, or get the same productivity, but your work can be better).

Thus my above question.[/quote]

Using version control system as a developer is a sign of maturity. It indicates that you know not all your code changes are perfect or even good and you now have the ability to back out individual changes (or better understand why you made them). Helpful comments while checking in your changes also goes a long way 6 months from now when you forgot how something worked.

These days a DVCS is free to use with nice UI’s so you really have no excuse not to use it.

I have set up Mercurial and SourceTree on my Mac.

There is lots of documentation for Mercurial.

Very little for SourceTree.

Also where is the documentation of Xojo for an explanation of the source folders/file for the different ‘save as’.

James:

In UserGuide-Development.pdf, page 74 (Section 2, Using Source Control).

I stop searching there. (First PDF loaded, Search “Version Control” and I get it)

[quote=49531:@Emile Schwarz]scott:

how many times it tooks you to be back as productive as when you do not use VCS ?

All:
the learning time (for using a new software) slow down your productivity, then you came to be as productive as before and when chances are on, you even can be more productive than before (most of the time, or get the same productivity, but your work can be better).

Thus my above question.[/quote]

Emile, I am not sure your question is. I am going to answer what I think your question is. Please bare with me.

I believe you are asking how long after adding VCS to my workflow, did I get back to same productivity levels as I was at before I was using it.

For me I was just as productive (and arguably more productive) within minutes. Once you learn whatever VCS you are going to us (not master it but learn the basics), that is it. Everytime I had a “checkpoint” or a point in the code that everything works/compiles, I check in the code to the VCS. That way I can revert back to that point if I screw something up. Ok I do that from time to time so I have to roll back to one of these checkpoints.

now one of things that used to bite me in the ass was when Xojo (or Real if we go back far enough in time) would make a little change that would break my code. It has happened to all of us. So now when Xojo releases a new version of the IDE. I make a test branch of my code. load that branch up with the new IDE and see what breaks. Since it is a test branch, I dont care if the new IDE messes with the code. my production/GA branch of the code is untouched. After I finish testing the code, I discard the test branch and it was like I never did anything (or at least to the code).

another good use of the test branch is when you get an idea (especially if it is radical or our there) and you want to test it but dont want to trash you code base. just make a test branch, code away, and if it works great! if it doesnt, just throw that branch away. no harm done

so I would expect most people to be able to be at the same level of productivity within a day. now that doesnt mean you are using all the advanced features of the VCS.

now everyone’s mileage will vary.

One HUGE plus is how easy it is to get back to some version that may be months old. Sometimes I make a code change and think every thing is OK and on my way I go. But then weeks or even months later, I stumble across some problem that I hadn’t noticed before, you are only guessing when you made the change and hopefully you have backups that cover that time period. With Source control, it usually only takes a few rewinds to pull up the version where the issue was introduced, and since most VCS are tied into many popular diff tools, it is easy to see where the problem code was introduced.

I think back to the days before I used Source Control and the things I had to do to keep a reasonable backup record seem comical now. Source Control is huge time saver in a number of ways.

Scott, Merv,

Thanks friends.

Scott:
New ideas / Kind of code, etc.
I usually create a skeleton project (new one) and put all the code there, test the idea, then, if it works (most of the time *), I include the newly developed idea into the regular project (where I want to use it). That is how I “developed” my “progress bar” in pure Xojo (for example).

  • I have one case where the new idea works fine (nearly), but, to date, and after around 14 months, I do not incorporate the working code to the main project. I do not know why (but I added in the data folders related to the main project what is needed to implement that code…)

Merv:
I have an “previous projects” folder (beside the main project) and make a copy after doing many changes to the main projects. I do not usually go there to see anything. BUT: you are right, I is certainly very useful to be able to do it (reading your text).
Also: I started to add some king of changelog years ago: Note with date + Changes with description / date / Why / eventual other data (say “advice to do that sent by…” or “code shared by…")

With time (next january ?), I will really go that way (it takes times to do new things, sometimes).

[quote=48727:@Joseph Claeys]I use MacHG with Mercurial. I’ve used Subversion and Git. Mercurial seems to combine the best of both.
[/quote]

Thanks for this suggestion. I gave it a try over the weekend and it works like a charm for me. So far it seems to be a perfect match for my workflow.