Orbiter-Forum  

Go Back   Orbiter-Forum > Blogs > Face
Register Blogs Orbinauts List Social Groups FAQ Projects Mark Forums Read

Rate this Entry

Version Control in Orbiter Add-On Development

Posted 10-25-2012 at 07:00 AM by Face
Updated 10-25-2012 at 07:41 AM by Face
Tags dvcs, mercurial

So there I was wondering what version control system folks use for Orbiter add-on development.
"Let's start a poll about it", I thought.
"Let's put a I-don't-have-a-clue-what-you-mean option to the end of it", I thought.
...and of course people used that option! Around 30%, even!

So I opened my big mouth and asked if it would be a good idea to start a blog series about version control in add-on development. Some agreed, and well... here I am.



I think a good start of this series is a little structuring. What do I want to talk about, and what do I NOT want to talk about.

  1. DOs:
    • Why it is a good idea to use version control even for the smallest add-on project.
    • Why it is a good idea to use a certain form of version control (DVCS) in the typical add-on team (lonesome cowboy).
    • What I use as DVCS (Mercurial) and how you can get it working on your machine.
    • How I use it from day to day.
    • Use cases (this may be the open-ended part of the series).
  2. DONTs:
    • How the cost/risk calculation balances. I happily leave that to bean counters.
    • How a DVCS works under the hood. I know it, but I don't want to bore you mad with it.
    • Why I've chosen Mercurial over X. Go play somewhere else if you came for that.
    • Git. No, seriously, I know the previous point should include that, but proponents of this tool are particularly insisting, especially with Mercurial being mentioned. So here it is explicitly.
Now that there is that crude outline, let's give this first post a little content.

"Huh? What is version control?"
That was the exact phrase in the poll, and I think those who checked it really meant it that way. Some posters tried to answer that question:
Quote:
Originally Posted by Artlav View Post
Now it works, now it don't.
What happened?

With a change-by-change log of changes (which is the main use of VCS), it's easy to find out.

With a single, constantly changed project that you last backed up a week ago - it's anyone's guess, and no way to roll back.
Quote:
Originally Posted by Urwumpe View Post
a Tool to manage the changes to a file or multiple files.
Those answers are already spot on, but nevertheless, here is my own definition of it:

Quote:
Version control is the means you use to keep versions of your add-on project under control. "Version" in this context is a snapshot of your project at a given time, "control" is every operation on the whole set of these versions. "Operation" can be as easy as restoring a specific version, or as complicated as tracing the changes to a certain mesh file throughout renames.
And if this even adds more "Huh?" to the "What is version control?", please let me put it like so:

It's the developer's time-travel phone-box, dude.


And with that I'll keep you "excellent" wondering what the next issue might bring.
Posted in DVCS
Views 8476 Comments 7
« Prev     Main     Next »
Total Comments 7

Comments

  1. Old Comment
    Marvin42's Avatar
    Great blog post, just a specification, it's not a phone-box, it's a ...eh, i guess
    Posted 10-25-2012 at 09:03 AM by Marvin42 Marvin42 is offline
  2. Old Comment
    agentgonzo's Avatar

    I totally agree with the "I'm going to talk about Mercurial only. And definitely not Git". I'm a Git proponent but talking about other VCSs will only muddy the waters.
    Posted 10-25-2012 at 09:22 AM by agentgonzo agentgonzo is offline
  3. Old Comment
    Face's Avatar
    Quote:
    Originally Posted by Marvin42 View Comment
    Great blog post, just a specification, it's not a phone-box, it's a police-box...eh, i guess
    Hehe. OK, for you Doctor Who folks time-travel in style is only possible in police boxes, I see. Here I referenced Bill & Ted's ride, though, but whatever...
    Posted 10-25-2012 at 09:38 AM by Face Face is offline
  4. Old Comment
    Izack's Avatar
    Glad you decided to blog about this, Face. This one needs a good coax in that direction.

    LOL, Bill and Ted. Wow, it's been a while.
    Posted 10-25-2012 at 10:51 AM by Izack Izack is offline
  5. Old Comment
    RacerX's Avatar
    so what is bit bucket considered? I'm lost. Are you proposing a type of tortoise or bitbucket type of repository for orbiter addon and projects. A way to easier keep track of what's being developed for orbiter? If that's the case I like the idea...but getting people to follow a certain standard may prove a bit more difficult...if this is what you are trying to say. for example I prefer Winrar to winzip or 7zip. And if you make a addon and upload it to the hanger as a .rar file people start getting frustrated in their posts. And that's fine because it is a standard that has developed among orbiter users through the years. So I complied by that. But yes I do like the idea...if this is what you are proposing.
    Posted 10-25-2012 at 10:56 PM by RacerX RacerX is offline
    Updated 10-25-2012 at 11:09 PM by RacerX
  6. Old Comment
    Face's Avatar
    Quote:
    Originally Posted by RacerX View Comment
    so what is bit bucket considered? I'm lost. Are you proposing a type of tortoise or bitbucket type of repository for orbiter addon and projects. A way to easier keep track of what's being developed for orbiter? If that's the case I like the idea...but getting people to follow a certain standard may prove a bit more difficult...if this is what you are trying to say.
    No, this is not the idea. I'm just going to explain how I am developing add-ons with a DVCS. Period.
    I'm not going to tell you what you should do, just what you could do, because there obviously are people that don't know what possibilities there are, but nevertheless suffer from the consequences.

    Quote:
    Originally Posted by RacerX View Comment
    for example I prefer Winrar to winzip or 7zip. And if you make a addon and upload it to the hanger as a .rar file people start getting frustrated in their posts. And that's fine because it is a standard that has developed among orbiter users through the years.
    Let's stay with your example. Winrar, Winzip, 7Zip are all tools for the same purpose: compression/packaging of files. By convention, the Orbiter community decided on one format for better package exchange. This is true. But where is copying single files to a remote machine in here? Where does sneakers-net fit in here?

    Ridiculous, you'd say, of course I'm not going to copy every single file somewhere on a media to transport it somewhere else! Of course I use a compression/packaging tool to send it via network!

    But I see it just the same with development of add-ons: it doesn't matter what the community does or does not agree upon regarding what version control should be used, if there are people that don't understand the concept of version control at all. The tool you use in the end (SVN, CVS, TFS, Perforce, Git, Mercurial, Darcs, Bazaar, Fossil, Veracity, younameit) is not so important as the fact that you use a tool at all.

    Especially with modern tools, there is no more excuse to not use version control in development IMHO. Therefore I'm writing this blog series.
    Posted 10-26-2012 at 08:21 AM by Face Face is offline
  7. Old Comment
    NukeET's Avatar
    I'm not a proponent of any particular type yet. I've chosen to look at/try out Git first. And subscribed to this blog to speed up my ascent on the learning curve.
    Posted 10-27-2012 at 04:57 PM by NukeET NukeET is offline
 

All times are GMT. The time now is 01:52 AM.

Quick Links Need Help?


About Us | Rules & Guidelines | TOS Policy | Privacy Policy

Orbiter-Forum is hosted at Orbithangar.com
Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2019, vBulletin Solutions Inc.
Copyright 2007 - 2017, Orbiter-Forum.com. All rights reserved.