Hey what version control system do most Delphi developers use? For work? For personal projects? And if you have public projects, where do you host your code? Sourceforge? Googlecode? Github? or Bitbucket?

Hey what version control system do most Delphi developers use? For work? For personal projects? And if you have public projects, where do you host your code? Sourceforge? Googlecode? Github? or Bitbucket?

I'm curious because I see one of the factors which can affect collaboration of open source projects within a programming community is (1) the Version Control System you use and (2) where you host your code.

I, for one, am biased. I use git for my VCS and use Github to host my personal public repositories. For work, we host host our code in our own centralised Subversion repository but locally on my PC, I use Git to interface with it. 

My reasoning is that Github makes the code the focal point. In my opinion, Github makes open-source projects (1) more easily accessible, (2) it provides the transparency to allow you to clone a project to make your own changes and fixes, and (3) gives you the ability to easily contribute back to the original project. It is also simple If you are the maintainer of the original project because the Github workflow makes it very simple to review code contributions and the ability to merge those changes back to the main project. In comparison to Sourceforge, the focus is administrating the project and the maintaining, sharing and the easy collaboration of the project is secondary.

So back to my original question, what VCS and code hosting service do you use? and do you think what it offers is good enough for what you do?

Comments

  1. DVCS - git and mercurial (hg).  Preference: Hg
    Hosting - github and bitbucket.  Preference: bitbucket, which can host both hg and git repos.

    Though I prefer hg @ bitbucket, if I was looking for the greatest chance of attracting public support for an OS project, I would probably go with git @ github.  That combination just seems to have a lot more traction.

    ReplyDelete
  2. I use bitbucket too. Similar to you, I agree that github appears to have the higher profile and traction. It probably helps that it already hosts a lot of large collaborative and active open-source projects.

    ReplyDelete
  3. We switched to StarTeam in 2003, shortly after Borland acquired it.  It still works great for us.  The ability to integrate change management directly into source control is a key feature that we do not see in other version control systems.

    ReplyDelete
  4. We use StarTeam also.  There was a plan to switch to MS Team Foundation Server when we move the code from Delphi to C#.  However that initiative died a horrible death, so maybe TFS is no longer an option, too.

    ReplyDelete
  5. Which initiative?  Your initiative?

    ReplyDelete
  6. The initiative to move from Delphi to C#

    ReplyDelete
  7. I never had the pleasure of using TFS but did have to use its predecessor Visual Source Safe in a previous team. The fact that only one developer could have any one file unlocked and checked out was very counter-intuitive to the development process. It may have been fine in the 1990s but there are so many better VCSs that do not get in the way of developing. I promised I would never work in that environment again.

    ReplyDelete
  8. SVN at Google Code for hobby projects - easy as a pie.
    SVN and dedicated repo at work, enough for our needs :)

    ReplyDelete
  9. Phillip Woon As a Delphi fan, I'd rather Delphi-to-C# initiatives fail.  :)  Colin Johnsun We were also using VSS before switching to StarTeam, which allows multiple developers to work on the same units/forms simultaneously and merge the results as necessary.  Combined with the best merge tool I've ever seen, Guiffy (www.guiffy.com), this provides an excellent solution.

    ReplyDelete
  10. Jon Robertson did you tried Araxis Merge? I find it very handy and judging from screens it's almost as nice as Guiffy

    ReplyDelete
  11. For work mostly Subversion. Private: Git (BitBucket for private projects  and GitHub for public projects). Clear preference for Git. As merge tool I prefer Beyond Compare as it is available for Windows and Linux.

    ReplyDelete
  12. For work we use #SVN running on an in house server. For my personal projects I still use SVN but host my private code on #Assembla  (https://www.assembla.com/home), for open source host on Google Code. Have been interested in trying #Git, just need to find the time :-) maybe over the xmas break

    ReplyDelete
  13. SVN + TortoiseSVN, company server.

    Beyond Compare is a really great asset for comparisons.

    JIRA for issue tracking, which hooks into SVN for change logs.  Just commit with the issue number in the comments, and each issue in Jira will show what files you changed for that issue.

    ReplyDelete
  14. We run SVM+TortoiseSVN and our own task and scr system.

    ReplyDelete
  15. Thanks everyone. If you haven't participated in Kevin Powick's Source Code Control survey, then please fill it out (http://tinyurl.com/ckrjf9n). I am very interested in the state of play in this area. Based on the replies so far, SVN seems to be the most popular choice. At the same time, it's good to see that there are others who are using DVCS's like git and Mercurial.

    If this question was asked of me two or three years ago, I too would've said SVN. Anyway I hope in time, more Delphi teams will see the benefits of using a DVCS and will also make the move.

    ReplyDelete
  16. I have to admit I never took time to try and grasp the benefits of Git or Mercurial over SVN.  I guess SVN felt like such a quantum leap forward from the MS system who's name shall not be mentioned, that it was hard to see how it could be improved further ;)

    ReplyDelete
  17. Lars Fosdal maybe you have an article or something at hand that lists the changes from SVN -> Git improvements in workflow?

    ReplyDelete
  18. The big revelation for me was the ability to work in branches. Of course, SVN offered branches as well but the way it works in Git and Mercurial is vastly different. It gave me the freedom to easily experiment with new coding ideas or create "feature" branches. Best of all, it made the task of merging branches dead easy. There are other benefits but this would be the main one for me.

    ReplyDelete
  19. We use branches, but rarely more than two or three at the same time, and as long as you remember which direction you want to sync, it is all good.  If there are three-way differences, Beyond Compare and multiple checkouts saves the day.

    ReplyDelete
  20. I'll give another vote for BeyondCompare, and remind all here that it was written (and still is, as far as I know) in Delphi. Apart from the fact that I have used it for years, I would be very unlikely to consider a tool written in Java (guiffy) in preference to BC.

    As to source control, my major work at present uses JVCS, because it was my client's choice. My own pick would be Hg.

    ReplyDelete
  21. Krom Stern We evaluated Araxis Merge back when we were making the decision.  Guiffy's 3-way merge was by far the best.  It rarely made a mistake or got "confused".  And the author (Bill Ritcher) provided excellent support.  The couple of times Guiffy failed us, I sent him examples and he provided a new build with a fix.  Licenses are very well priced as well.  This was before Beyond Compare had 3-way merge support, so I've never tried it.  Guiffy is written in Java and I despise Java apps.  And Guiffy's screen UI is very sluggish and jumps around a lot.  But I tolerate it because otherwise it works so well.

    For file comparisons, I only use Beyond Compare.  We have licenses for version 2 and I've used the add-on that comes with newer Delphi releases, which is a lite version of BC3.  There are several differences and I much prefer BC2.

    ReplyDelete
  22. For all my (1-man) projects TortoiseSVN + VisualSVN Server hosted on my computer at work.

    ReplyDelete
  23. Jon Robertson Thanks for explanation, I will try it now :) Fully agree, supported projects are great!
    EDIT: Maybe I'm getting it wrong, but when trying to compare JS with PAS (I port some code now) Guiffy spotted no similarity at all, thats sad, cos Araxis mostly got it right. Or is there some clever way to setup Guiffy to spot in-line changes?

    ReplyDelete

Post a Comment