Thread: Revision control system recommendations

  1. #1
    Make Fortran great again
    Join Date
    Sep 2009
    Posts
    1,413

    Revision control system recommendations

    I just started a new job and while it's very nice, they're kind of in the dark ages in the sense that they don't use a lot of modern practices. Not only do they not backup their data, but they don't use any sort of versioning etc.

    I have never used a revision control system outside of paid solutions and would like to implement something at work quickly that:
    - tight integration with Windows (I'm seeing TortoiseSVN and such)
    - simple
    - check in/check out (implied already probably)
    - client-server based
    - works with binary files

    Basically I just want to throw something on an old computer, and then back up the files for the revision control system. Kill two birds with one stone so to speak. We won't really be revising code, it's more of RSLogix files and CAD drawings. All I really need is the check-in check-out ability though.

    Thanks in advance for any suggestions. Right now I'm looking at Subversion + TortoiseSVN.

  2. #2
    C++ Witch laserlight's Avatar
    Join Date
    Oct 2003
    Location
    Singapore
    Posts
    28,413
    If you are willing to trust your source with an external provider, then going with a project hosting provider would probably be a good idea. As much as I prefer Bazaar myself, I note that Bitbucket provides up to 5 free private repositories using Git or Mercurial. Both Git and Mercurial have Windows integration including a Tortoise-style client, and of course these modern tools handle binary files. If you are willing to pay, then Github and Launchpad may be possibilities too.
    Quote Originally Posted by Bjarne Stroustrup (2000-10-14)
    I get maybe two dozen requests for help with some sort of programming or design problem every day. Most have more sense than to send me hundreds of lines of code. If they do, I ask them to find the smallest example that exhibits the problem and send me that. Mostly, they then find the error themselves. "Finding the smallest program that demonstrates the error" is a powerful debugging tool.
    Look up a C++ Reference and learn How To Ask Questions The Smart Way

  3. #3
    Make Fortran great again
    Join Date
    Sep 2009
    Posts
    1,413
    Our internet connection blows, and there's nothing we can really do about it due to our office's location, so that pretty much limits us to our own in-house server.

  4. #4
    C++ Witch laserlight's Avatar
    Join Date
    Oct 2003
    Location
    Singapore
    Posts
    28,413
    Ah. Well, are you familiar with Subversion? What about other tools? Are your team members familiar with Subversion? What about other tools?

    Looking at your requirements, it would be best to go with the tool for which the most people are most familiar with. That said, distributed version control tools may provide an advantage here in that even if your intranet is down, full version control capability would still be available (other than those operations that require access to the designated repository on the server).
    Quote Originally Posted by Bjarne Stroustrup (2000-10-14)
    I get maybe two dozen requests for help with some sort of programming or design problem every day. Most have more sense than to send me hundreds of lines of code. If they do, I ask them to find the smallest example that exhibits the problem and send me that. Mostly, they then find the error themselves. "Finding the smallest program that demonstrates the error" is a powerful debugging tool.
    Look up a C++ Reference and learn How To Ask Questions The Smart Way

  5. #5
    Make Fortran great again
    Join Date
    Sep 2009
    Posts
    1,413
    No one has used anything...I've used pay-for solutions (Synergis ADEPT, something RCS). Just looking for something simple and reliable.

    So you would recommend Bazaar then? It has TortoiseBzr, so it looks like it would fit my needs as far as Windows shell integration goes.

  6. #6
    C++ Witch laserlight's Avatar
    Join Date
    Oct 2003
    Location
    Singapore
    Posts
    28,413
    Quote Originally Posted by Epy
    So you would recommend Bazaar then? It has TortoiseBzr, so it looks like it would fit my needs as far as Windows shell integration goes.
    Yes There is also a "standalone" GUI interface named Bazaar Explorer.

    While you don't need to install Bazaar on your server, installing it would allow the use of the smart server which is more efficient. For access control, the way that I have used is the bzr_access script.
    Quote Originally Posted by Bjarne Stroustrup (2000-10-14)
    I get maybe two dozen requests for help with some sort of programming or design problem every day. Most have more sense than to send me hundreds of lines of code. If they do, I ask them to find the smallest example that exhibits the problem and send me that. Mostly, they then find the error themselves. "Finding the smallest program that demonstrates the error" is a powerful debugging tool.
    Look up a C++ Reference and learn How To Ask Questions The Smart Way

  7. #7
    [](){}(); manasij7479's Avatar
    Join Date
    Feb 2011
    Location
    *nullptr
    Posts
    2,657
    I've heard (probably here) that you're better off using a database if your needs are primarily about binary files.
    (Not sure about the authenticity of the fact, though.)

  8. #8
    C++まいる!Cをこわせ!
    Join Date
    Oct 2007
    Location
    Inside my computer
    Posts
    24,654
    A database is a, shall we say, storage technology, and not a source revision technology, so they are strictly separate product categories.
    In fact, Microsoft's Team Foundation Server uses Microsoft's database technology as the underlying technology for storing the data in the revisions.
    Quote Originally Posted by Adak View Post
    io.h certainly IS included in some modern compilers. It is no longer part of the standard for C, but it is nevertheless, included in the very latest Pelles C versions.
    Quote Originally Posted by Salem View Post
    You mean it's included as a crutch to help ancient programmers limp along without them having to relearn too much.

    Outside of your DOS world, your header file is meaningless.

  9. #9
    [](){}(); manasij7479's Avatar
    Join Date
    Feb 2011
    Location
    *nullptr
    Posts
    2,657
    Quote Originally Posted by Elysia View Post
    A database is a, shall we say, storage technology, and not a source revision technology, so they are strictly separate product categories.
    That was my point.
    If you can not use diff `s to distinguish between versions and visualize changes, what is the use of the extra layer(s) of abstraction.
    You can just store the data with the version as the key.

  10. #10
    C++まいる!Cをこわせ!
    Join Date
    Oct 2007
    Location
    Inside my computer
    Posts
    24,654
    You might. But then again, a version control system is not just about diffs. It's a lot more than that.
    Don't forget things such as locking, branching, committing, reverting, etc.
    Quote Originally Posted by Adak View Post
    io.h certainly IS included in some modern compilers. It is no longer part of the standard for C, but it is nevertheless, included in the very latest Pelles C versions.
    Quote Originally Posted by Salem View Post
    You mean it's included as a crutch to help ancient programmers limp along without them having to relearn too much.

    Outside of your DOS world, your header file is meaningless.

  11. #11
    [](){}(); manasij7479's Avatar
    Join Date
    Feb 2011
    Location
    *nullptr
    Posts
    2,657
    Quote Originally Posted by Elysia View Post
    You might. But then again, a version control system is not just about diffs. It's a lot more than that.
    Don't forget things such as locking, branching, committing, reverting, etc.
    Automated conflict resolution during commiting won't work too, so a lot of manual effort will be needed for maintaining branches(which may cancel out the other advantages), but I get your point.

  12. #12
    Master Apprentice phantomotap's Avatar
    Join Date
    Jan 2008
    Posts
    5,108
    I strongly advise against "SVN".

    I'd second "Mercurial", but "Bazaar" is also nice.

    That said, how big are the files? If they can't be efficiently "differenced" you can still use a revision control system, but you should consider disabling any "differencing" for those files.

    All that said, no revision control system is really all that useful for backup operations.

    Instead of trying to "kill two birds with one stone" consider using two stones to kill two very different birds.

    Consider throwing a revision control system, a real backup system with recovery potential, and a CD/DVD burner on an old/unused machine. If you teach your fellows to push change sets out to that machine it should work wonderfully for a real backup and revision control machine. It shouldn't take more than a few minutes of scripting to get the job done.

    Soma

  13. #13
    Registered User
    Join Date
    Oct 2006
    Posts
    3,445
    Quote Originally Posted by phantomotap View Post
    I strongly advise against "SVN".
    I use subversion every day, and find it to be quite adequate for my needs. what reasons do you have for advising strongly against using it?

  14. #14
    Master Apprentice phantomotap's Avatar
    Join Date
    Jan 2008
    Posts
    5,108
    what reasons do you have for advising strongly against using it?
    The reason I advise against it is simply that once I started using more modern tools I didn't have to do a lot of things I had been doing manually.

    So, with that in mind, have you ever used a more modern system? Try "Git" or "Mercurial" out for a bit. Specifically, try setting up a test branch that lives beside the root. It is a dream of simplicity whereas it is a loop manual "hoop jumpery" with "SVN".

    There are some breaking problems, but they aren't nearly as bad as they were for a while.

    Soma

  15. #15
    and the hat of int overfl Salem's Avatar
    Join Date
    Aug 2001
    Location
    The edge of the known universe
    Posts
    39,659
    > Our internet connection blows, and there's nothing we can really do about it due to our office's location, so that pretty much limits us to our own in-house server.
    So do you have any off-site backup capability?

    The nice thing about git (I guess bazaar and mecurial are the same) is that they are fully distributed. You're not reliant on a single point of failure.
    Yes, have a central server where everyone commits and syncs to, but if that goes you can easily rebuild from the last person who did a sync.
    If you dance barefoot on the broken glass of undefined behaviour, you've got to expect the occasional cut.
    If at first you don't succeed, try writing your phone number on the exam paper.

Popular pages Recent additions subscribe to a feed

Similar Threads

  1. Replies: 7
    Last Post: 10-20-2010, 11:25 PM
  2. Best Project Management and Revision Control Software?
    By sarah22 in forum General Discussions
    Replies: 31
    Last Post: 05-10-2010, 08:06 AM
  3. Menu type system flow-control
    By drag0n69 in forum C Programming
    Replies: 5
    Last Post: 02-24-2008, 09:18 PM
  4. good time control system
    By cozman in forum Game Programming
    Replies: 9
    Last Post: 05-31-2002, 11:03 PM