Thread: Best Project Management and Revision Control Software?

  1. #1
    Registered User
    Join Date
    May 2009
    Posts
    64

    Best Project Management and Revision Control Software?

    I'm planning to create a web server on my upcoming i7 computer this or next month. I want it to have a SVN for my current project.

    I just want to know which is the best project management and revision control software? So far, I'm the only own who is coding on my graphics engine. Is it practical to have these softwares? Do I really need these piece of softwares?

    Yeah, it sound lonely because I'm the only own and honestly, I can't find any reliable person to help me build my graphics engine.

    Anyway, I have a list here but honestly I don't have any time to test all of these. So, I guess just tell me which one you used and tell me if it is good.

    Comparison of project management software - Wikipedia, the free encyclopedia
    List of revision control software - Wikipedia, the free encyclopedia

    Thank you very much
    Sarah22

  2. #2
    C++ Witch laserlight's Avatar
    Join Date
    Oct 2003
    Location
    Singapore
    Posts
    28,413
    Quote Originally Posted by sarah22
    I just want to know which is the best project management and revision control software?
    What is best depends on your requirements. What do you need?

    Quote Originally Posted by sarah22
    So far, I'm the only own who is coding on my graphics engine. Is it practical to have these softwares? Do I really need these piece of softwares?
    You should use a revision control system even when working alone. I have my own preference as can be seen in my signature, but Subversion could well be fine for your purposes.
    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
    Registered User
    Join Date
    Sep 2001
    Posts
    4,912
    You should use a revision control system even when working alone.
    Ditto. It's a life-saver when you need a quick backup, or when you need to undo all the changes you've made in the past couple of days

    Subversion could well be fine for your purposes
    It's pretty common, and very user-friendly - so it's a good first choice. As laserlight said, however, it depends on your needs. Based on what you've said though - it sounds like something simple like Subversion is all you need. If you're alone, there's no advantage to learning the new distributed systems, etc...

  4. #4
    &TH of undefined behavior Fordy's Avatar
    Join Date
    Aug 2001
    Posts
    5,793
    I kind of like Mercurial SCM with TortoiseHg

    But have a look around and see what works best for you

  5. #5
    Officially An Architect brewbuck's Avatar
    Join Date
    Mar 2007
    Location
    Portland, OR
    Posts
    7,396
    Quote Originally Posted by sean View Post
    Ditto. It's a life-saver when you need a quick backup, or when you need to undo all the changes you've made in the past couple of days
    If you're unable to rebuild an older version of your software, then you're just goofing around, not doing real development.
    Code:
    //try
    //{
    	if (a) do { f( b); } while(1);
    	else   do { f(!b); } while(1);
    //}

  6. #6
    Master Apprentice phantomotap's Avatar
    Join Date
    Jan 2008
    Posts
    5,108
    O_o

    WTF!?

    If you'd rather do it by hand... screw it. If you'd rather do it by hand, you're an idiot.

    Soma

  7. #7
    spurious conceit MK27's Avatar
    Join Date
    Jul 2008
    Location
    segmentation fault
    Posts
    8,300
    There is always "MK-VCS":

    tar -cjf version.0.1.tbz project/


    This is not as full featured as the other options, but it is extremely easy and works just fine.
    C programming resources:
    GNU C Function and Macro Index -- glibc reference manual
    The C Book -- nice online learner guide
    Current ISO draft standard
    CCAN -- new CPAN like open source library repository
    3 (different) GNU debugger tutorials: #1 -- #2 -- #3
    cpwiki -- our wiki on sourceforge

  8. #8
    Officially An Architect brewbuck's Avatar
    Join Date
    Mar 2007
    Location
    Portland, OR
    Posts
    7,396
    Quote Originally Posted by phantomotap View Post
    O_o

    WTF!?

    If you'd rather do it by hand... screw it. If you'd rather do it by hand, you're an idiot.

    Soma
    Are you responding to me? Because that's the opposite of what I meant.

    Let's try again.

    If you're unable to rebuild an older version of your software, because you didn't have the foresight to use source control, then you're just goofing around, not doing real development.

    Better?
    Code:
    //try
    //{
    	if (a) do { f( b); } while(1);
    	else   do { f(!b); } while(1);
    //}

  9. #9
    (?<!re)tired Mario F.'s Avatar
    Join Date
    May 2006
    Location
    Ireland
    Posts
    8,446
    If you don't need merge, Subversion is all you ever need really. Powerful, fast and use it with TortoiseSVN, if under windows, for added goodness. Subversion supports merging but it is crude, really.

    If you need merge (typical if you work on two separate versions of your project and then later need to merge these), then I suggest Mercurial. Check Sean's link above for the GUI overlay.

    If you want a real heavyweight then I suggest Git. For windows you will use the msysgit port. This is, everyone says, one of the best and most complete source control systems. But this is also... a difficult program to use, with a steep learning curve. Embrace yourself and think that you are doing it in the name of Science; you want to prove the world, mankind is able to complicate things way beyond necessary and still have it work for them.
    Originally Posted by brewbuck:
    Reimplementing a large system in another language to get a 25% performance boost is nonsense. It would be cheaper to just get a computer which is 25% faster.

  10. #10
    Master Apprentice phantomotap's Avatar
    Join Date
    Jan 2008
    Posts
    5,108
    Are you responding to me? [...] Better?
    Yes. I've obviously misunderstood your post. I'm sorry for the confusion.

    And. Yes. That's certainly clearer.

    [Edit]
    Oh. In my not-so-humble opinion, you are insane if you use CVS or SVN for a new project. Use Git, Bazaar, Mercurial, or whatever, but please stay away from CVS and SVN. Please. Pretty please!? ;_;
    [/Edit]

    Soma

  11. #11
    Officially An Architect brewbuck's Avatar
    Join Date
    Mar 2007
    Location
    Portland, OR
    Posts
    7,396
    Quote Originally Posted by phantomotap View Post
    [Edit]
    Oh. In my not-so-humble opinion, you are insane if you use CVS or SVN for a new project. Use Git, Bazaar, Mercurial, or whatever, but please stay away from CVS and SVN. Please. Pretty please!? ;_;
    [/Edit]

    Soma
    I like to throw them off base a little bit by recommending RCS.

    But seriously, I like Perforce. I know a lot of people hate it. I know it's commercial. But you can use it for free if you only have one or two developers.
    Code:
    //try
    //{
    	if (a) do { f( b); } while(1);
    	else   do { f(!b); } while(1);
    //}

  12. #12
    Officially An Architect brewbuck's Avatar
    Join Date
    Mar 2007
    Location
    Portland, OR
    Posts
    7,396
    Quote Originally Posted by Mario F. View Post
    If you don't need merge, Subversion is all you ever need really. Powerful, fast and use it with TortoiseSVN, if under windows, for added goodness. Subversion supports merging but it is crude, really.
    Are you serious? I've heard a lot of bad things about SVN but I've never heard that one. You can't merge? Who the hell would use it for anything?

    Do you mean that it just sucks at resolving conflicts? Because IMHO, that's not a responsibility of a source control system in the first place -- you use an external resolver. Or do you mean that it cannot represent merges in the metadata?
    Code:
    //try
    //{
    	if (a) do { f( b); } while(1);
    	else   do { f(!b); } while(1);
    //}

  13. #13
    (?<!re)tired Mario F.'s Avatar
    Join Date
    May 2006
    Location
    Ireland
    Posts
    8,446
    Quote Originally Posted by brewbuck View Post
    Are you serious? I've heard a lot of bad things about SVN but I've never heard that one. You can't merge? Who the hell would use it for anything?
    Your question both confuses me and surprises me.

    Confusion: What other bad things you heard about SVN? I can't honestly think of anything.

    Surprise: Of course you can merge. I didn't say you couldn't. But you honestly didn't know about SVN merging limitations, most notably lack of proper rename support? Boy, you really don't want to perform a refactoring on a branch that results in file renaming under SVN.

    Quote Originally Posted by phantomotap
    Oh. In my not-so-humble opinion, you are insane if you use CVS or SVN for a new project. Use Git, Bazaar, Mercurial, or whatever, but please stay away from CVS and SVN. Please. Pretty please!? ;_;
    It's the "not-so-humble" there that tricked me into replying. What is so bad about SVN that makes you say people are insane using it? I've used nothing but SVN for the past 5 years and don't feel insane about it.

    Now, I could migrate to Mercurial... and I'm thinking doing it... but there's really nothing fundamentally wrong about SVN. It's an excellent system.
    Originally Posted by brewbuck:
    Reimplementing a large system in another language to get a 25% performance boost is nonsense. It would be cheaper to just get a computer which is 25% faster.

  14. #14
    Officially An Architect brewbuck's Avatar
    Join Date
    Mar 2007
    Location
    Portland, OR
    Posts
    7,396
    Quote Originally Posted by Mario F. View Post
    Your question both confuses me and surprises me.

    Confusion: What other bad things you heard about SVN? I can't honestly think of anything.
    Lack of proper overlay support is the biggest one that would impact me, personally.

    Often during development, you might have multiple developers each working on some different enhancement or new feature. The enhancements may be limited to only a particular module, so you don't necessarily want to branch the entire tree, but only a portion of it. But you want to be able to overlay the smaller branch on top of the main line during development. This way, you track the changes on the main line as they occur, instead of having to reintegrate with the latest main line on a daily basis.

    Furthermore, when it comes time to test the changes in combination, you may not want to merge back to the main line just yet. You want to overlay all of the enhancements on top of the main line and test them that way first, to avoid the need to back out a huge merge if things don't turn out the way you thought.

    Surprise: Of course you can merge. I didn't say you couldn't. But you honestly didn't know about SVN merging limitations, most notably lack of proper rename support? Boy, you really don't want to perform a refactoring on a branch that results in file renaming under SVN.
    You suggested using it, unless you required the ability to merge. I interpretted that to mean that you can't merge in any useful way, and from what I've heard, you can't, for the reasons you mention.
    Code:
    //try
    //{
    	if (a) do { f( b); } while(1);
    	else   do { f(!b); } while(1);
    //}

  15. #15
    (?<!re)tired Mario F.'s Avatar
    Join Date
    May 2006
    Location
    Ireland
    Posts
    8,446
    It's a big limitation, yes. Hence why I called it crude in its merging support. I do keep however separate branches on my projects (we also use subversion at work, but don't branch).

    At home my one and only separate branch is were I keep my XML commented code, while the main trunk is stripped of that nonsense. I go around that limitation, when needed be, by simply merging the changed files individually first and then performing a final merge on the rest of the bulk. I can keep it under control.

    However at work we are starting to feel the need to branch. Hence why I'm starting to look at other solutions. Mercurial is probably going to be choice. Not only for better merging, but also because we starting to feel a real need for a distributed system... and the changeset paradigm... well, we really are starting to feel the need for REAL source control.
    Originally Posted by brewbuck:
    Reimplementing a large system in another language to get a 25% performance boost is nonsense. It would be cheaper to just get a computer which is 25% faster.

Popular pages Recent additions subscribe to a feed