Which version control software

Discussion in 'Indie Basics' started by Greig Hamilton, Sep 2, 2007.

  1. MrPhil

    Original Member

    Joined:
    Aug 4, 2004
    Messages:
    671
    Likes Received:
    0
    I know you said you have limited access to the internet, but I think you should consider cvsdude.com as an off-site repository host. At a bare minimum you could export your local/daily stuff to a cvsdude.com directory and commit when you do have access to the internet. I've used them for years and recommend them highly. It gives me complete peace of mind knowing my source code is safely backup in a different place.
     
  2. MrPhil

    Original Member

    Joined:
    Aug 4, 2004
    Messages:
    671
    Likes Received:
    0
    You might mean this thread TortoiseSVN
     
  3. bvanevery

    bvanevery New Member

    Joined:
    Jun 25, 2007
    Messages:
    369
    Likes Received:
    0
    In a multi-developer context, particularly in open source, I'm a fan of distributed peer-to-peer version control systems. These allow developers to mostly work right past each other, the patch and merge capabilities of such tools are pretty advanced compared to the client-server crowd. Mercurial and Darcs are the ones I'm familiar with. Mozilla is transitioning to Mercurial for future work, but it's not fully integrated into their build and test regimen yet. Darcs was used by the Chicken Scheme-to-C author until recently, but he gave up on it, citing performance limitations. Personally I found Darcs very easy to use, all other capabilities aside. Mercurial is very similar and I'm currently trying it in my own work, as is the Chicken author. The public Chicken repository went to Subversion though, because that infrastructure already existed and it was the path of least resistance.
     
  4. Nikster

    Original Member

    Joined:
    Jul 27, 2004
    Messages:
    698
    Likes Received:
    0
    Actually, it was this thread :)
     
  5. MrPhil

    Original Member

    Joined:
    Aug 4, 2004
    Messages:
    671
    Likes Received:
    0
    Heh heh. I tried :D
     
  6. Diragor

    Original Member

    Joined:
    Jul 27, 2004
    Messages:
    293
    Likes Received:
    0
    I recently read about git, written (or at least started) by Linus Torvalds and now in use for Linux kernel development. It's a peer-to-peer version control system and looks interesting, but I haven't used it myself and I've never investigated the other peer-to-peer solutions so I don't really have anything insightful to say about it.

    I've used Subversion at work and at home for a few years and I don't have any complaints. TortoiseSVN is great if you're on Windows.
     
  7. Bad Sector

    Original Member

    Joined:
    May 28, 2005
    Messages:
    2,742
    Likes Received:
    5
    Reviving this thread to talk about Bazaar :).

    It's a decentralized versioning system which practically means that there is not a "big fat repository" but the versioning is done in -somewhat- independent branches. The idea is that different people might want to work in different parts of a project and not mess with the others' stuff or the repository, but still have the benefits of version control and a single project. At the core, it's just a bunch of different versions of the same thing which can be merged or duplicated (make new branch) so new things can work there.

    This is an interesting thing for the adventurous types of coders, because you may want to experiment on a new algorithm for scene management (for example) as a side project but continue the development if your engine as the main task. So you create a branch of the code, which you regularly update from the main branch and experiment on that branch (with proper commits, etc). The experimental branch has everything the main one, plus the new scene management. If the new algorithm makes it, then you just merge that branch with the main and everyone is happy. If the new algorithm doesn't make it, you just forget about the experimental branch. At least you tried it. But on the plus side, you didn't tried it with the main branch and the code inside remained clear and working :). And if you worked with more coders which were using your main branch as the source for their own branches, you didn't spoiled theirs when they were updating from yours.

    Also this is an interesting thing for people who want to put their code online but they don't want to pay for a dedicated or VPS system, set-up subversion/svn/whatever, etc. Bazaar works over SFTP (pull/push), plain FTP (pull/push), SSH (pull/push) and HTTP (only pull) and if you compress a branch directory, put it in a CDROM or a USB flash drive, move it somewhere else, it's a valid branch from where people can update, merge or whatever they would do with an online branch. Since for Bazaar the only thing that matters is the files in the special .bzr directory, you can push/pull to/from the main branch using SFTP or FTP and use HTTP for public access. You can setup your ftp server's permissions so only your user can access the source code -for example- but allow anyone (that is, the www user :p) to get the latest documentation :).

    About people who use Bazaar... well, many :). Canonical (of the Ubuntu fame) sponsors the project these days (and uses it for their Launchpad site). And i use it too for a project :p.

    Check the official site and especially the 5-minute mini tutorial which covers quickly what Bazaar is and what can do.
     
  8. ChrisP

    Indie Author

    Joined:
    Feb 5, 2007
    Messages:
    971
    Likes Received:
    0
    Sounds okay, but I have no reason to switch from Subversion. It already does everything I want. :)

    The branching feature is far from unique to Bazaar, by the way - Subversion and even CVS have been able to do that for a very long time.
     
  9. MrQ

    MrQ New Member

    Joined:
    Oct 4, 2006
    Messages:
    198
    Likes Received:
    0
    I have only ever used TortoiseSVN and Perforce. Perforce seems great for larger projects but I actually found Tortoise very easy to use for home projects.
     
  10. Bad Sector

    Original Member

    Joined:
    May 28, 2005
    Messages:
    2,742
    Likes Received:
    5
    I used Subversion before (and i still use it at work). Branching in subversion is something totally different than branching in decentralized systems like Bazaar (there are others, like git and mercurial, but i find bazaar to be the best). I would go as far as to say that their relation is only little more than the name.

    In Bazaar you branch for making a local copy from a main branch (think it like your svn repository). You work locally with this branch, like if it was a small svn repository (you really commit stuff in this branch) and then you simply merge it with the main branch. Merging is a top-class process in Bazaar (unlike SVN/CVS) because this is one of the most (if not the most) important part of a decentralized versioning system.

    If you work alone with only you having access to a repository from a single or a couple of computers, then you're probably won't gain much from using Bazaar instead of Subversion (let CVS die please).

    However at work, there were many cases where using a decentralized system would be of help. For example, a guy was optimizing our low level routines. His work took a lot of days and he couldn't commit them to the subversion repository before making sure that they work. The rest of the coders were using the non-optimized (but working) versions independently. Now, this guy just lost the versioning control for the period he was working on optimizing the routines.

    But if we had a decentralized versioning system, like Bazaar, he could simply checkout a branch from the main branch, work on this branch independently with full versioning support, but without messing with the main branch, and once his work was done he could just merge his branch with the main one :).
     
  11. Backov

    Original Member

    Joined:
    Oct 23, 2005
    Messages:
    812
    Likes Received:
    0
    Or he could do exactly that with SVN.
     
  12. Bad Sector

    Original Member

    Joined:
    May 28, 2005
    Messages:
    2,742
    Likes Received:
    5
    When reading about Bazaar never think "branch" in the same meaning as CVS/SVN.

    No, this is not possible with SVN because there is only one "main" repository. He either had to setup a local SVN and then merge somehow his SVN with our SVN (which is prone to errors and requires a lot of manual work) or use the normal repository. We didn't wanted to use his experimental functions before they were stable (and for a while lot they weren't). While it could be possible to move the whole project in another place in the repository, this "other place" would remain forever in there, polluting the repository. This method of making branches is a bad had imho and Bazaar provides a more clean solution.
     
  13. Backov

    Original Member

    Joined:
    Oct 23, 2005
    Messages:
    812
    Likes Received:
    0
    What you described is exactly what branches in SVN are for. Read up on it.
     
  14. Bad Sector

    Original Member

    Joined:
    May 28, 2005
    Messages:
    2,742
    Likes Received:
    5
    I know, that's what i described :p. What i meant is that with Bazaar he wouldn't have to do all these.

    Ok, it's probably my bad wording (because i can't understand how these two look the same to you - i have done branching in SVN), but this is not the same process. Read the five minute tutorial, the shared branching and the bazaar for cvs/svn users from the bazaar site. They explain it better :).
     
  15. tinjaw

    tinjaw New Member

    Joined:
    Jan 8, 2007
    Messages:
    2
    Likes Received:
    0
    I recommend SVK

    I use Subversion daily. My problem was that I often had to do development work in locations that didn't have an internet connection, so I was unable to connect to the subversion repository. I found a solution in SVK. The best thing about SVK is that is it built on top of Subversion, so all of my tools continue to work. The super-quick over-simplified description is to think of making a mirror of the subversion repo on your local drive (called a depot) and you then make a subversion repo of that. What SVK does, it handle all of the stuff you need to make that possible by avoiding all of the potential pitfalls of such a setup, including properly synching with all metadata included. It is also solid and proven in the field. You could think of it distributed Subversion.
     

Share This Page

  • About Indie Gamer

    When the original Dexterity Forums closed in 2004, Indie Gamer was born and a diverse community has grown out of a passion for creating great games. Here you will find over 10 years of in-depth discussion on game design, the business of game development, and marketing/sales. Indie Gamer also provides a friendly place to meet up with other Developers, Artists, Composers and Writers.
  • Buy us a beer!

    Indie Gamer is delicately held together by a single poor bastard who thankfully gets help from various community volunteers. If you frequent this site or have found value in something you've learned here, help keep the site running by donating a few dollars (for beer of course)!

    Sure, I'll Buy You a Beer