Session:
Understanding Distributed Version Control
This session helps developers who have been working with a Centralized Version Control System such as SVN to understand and use Distributed Version Control such as GIT or Mercurial. This session focuses primarily on GIT, but applies to Mercurial. We also cover how to use GIT from the RAD Studio IDE.
Level: Beginning
Robert Love – State of Utah
Q&A:
Audience Question
- Q: Can you say why you chose GIT over Mercurial?
- A: Years ago I ran across a great blog post comparing both, as I had a hard time picking one. http://importantshock.wordpress.com/2008/08/07/git-vs-mercurial/ Ultimately I had to use GIT first on an Open Source project and got used to it, so I use it primarlly. I still have a few things I use that are with Hg. Overall one is not better than the other.
- Q: Note the / is actually the slash, not the reverse slash (the \ is the back-slash, not a reverse slash either).
- A: Thanks :-)
- Q: Any way to speed up the refresh rate of GoToWebinar? A lot of what Robert Love shows can’t be seen as the webinar doesn’t keep up.
- A: I can’t see a way to do this – Robert Love
- Q: On my side, the GoToWebinar viewer refreshes like every 5-10 seconds, and I’m on a symmetric 50/50 megabit fiber connection.
- A: Sometimes GoToWebinar gets slow, especially this time of the day. Sorry.
Audience Question
- Q: Since many of us use svn, here is a link to comments on transfer from svn to git: https://www.google.no/?gws_rd=ssl#q=svn%20to%20git%20migration
- A: Nice
- Q: I like this Git versus Mercual comparison a lot: https://code.google.com/p/support/wiki/DVCSAnalysis
- A: Nice
http://robstechcorner.blogspot.com/2014/10/introduction-to-git.html and
Audience Question
- Q: In SVN there is a revision number, is there something simular in git? We commonly put the SVN revision number in the version information on our executables, is there something simular one can do using git to identify what revision the program was built from?
- A: Git has a hash number that tells you the revision, but it isn’t an incremting number.
- Q: I favour Github over BitBucket especially for repositories containing documentation as GitHub allows you to have Markdown files referring relative locations to images and other URLs without getting broken. BitBucket has struggled for years to support that and still doesn’t.
- A: :-)
- Q: Since Github only supports Git (few hosters support Mercurial), that basically forced me to the Git side of DVCS.
- A: :-)
Audience Question
- Q: Can you configure Delphi to automatically include a .gitignore file?
- A: Not sure. Check this out too https://www.youtube.com/watch?v=5oUVJ1HWUVY
- Q: Git has also a far easier way of importing SVN than Mercurial: Git has it built in.
- A: :-)
Audience Question
- Q: The Distributed (briefcase) model works for Open Source projects, because noone is being paid any money. Example: One published Request is picked up by 10 developers, and when they all commit their Versions, usually only one is used, and the other nine’s work is completely/laregly wasted. So … I guess I don’t find this distributed model very compelling.Great Presentation though
- A: If isn’t compelling, don’t use it. Git also has much better support for branching, merging, etc.
Audience Question
- Q: How to integrate Git into Delphi IDE?
- A: It already is https://www.youtube.com/watch?v=5oUVJ1HWUVY
- Q: An example I put on-line for that is https://bitbucket.org/jeroenp/fastmm which clones the FastMM SVN repository
- A: Nice
Audience Question
- Q: is it possible RAD will support TFS?
- A: I think I saw a plug in for that.
Audience Question
- Q: is it possible RAD will support TFS?
- A: http://www.epocalipse.com/scx.htm
Audience Question
- Q: Most of the demos I’ve seen have tidy demos involving text files, where merging seems relatively easy, as it would be with a .pas file – how do you find merging DFM files? (Which I’ve occasionally found tricky in SVN) Does Git/HNG make this easier?
- A: Nothing handles DFM well if someone is changing the same area of the file. Git does pretty well if the changes are in different parts of the DFM.
- Q: BitBucket has the huge advantage of freely hosting private repositories. On GitHub you need to pay for that.
- A: Yes
Q: DVCS know about the changes to a file (and have the whole change tree locally) so are far better at merging van a state based system like SVN (though SVN has gotten better over the years)
Audience Question
- Q: Version Control under Tools>Options is only available in XE7?
- A: SVN has been there for a while, but Git is XE7
Audience Question
- Q: I use SVN, and can see some nice things about SourceTree vs SVN. Did I miss why GIT might be better than SVN?
- A: There are a lot of differences and advantages to Git.
Audience Question
- Q: I work on sparetime with an ideal organisation that has its own server and today we have a svn repository. Seems like with git you miust o\upload souircecode to open soiurce repositories. I wonder is it possible to set up our own git server for own use?
- A: Yes, absolutely. You can host your own private server or a private repository on other servers.
- Q: Version numbers should not depend on the kind of repository one uses. It makes you technically dependant on the repository. So version numbers should come from your build integration.
- A: :-)
- Q: There is this gitignore boilerplate for Delphi https://github.com/github/gitignore/blob/master/Delphi.gitignore (they’re not so good at taking pull requests, but it is a great start)
- A: Nice
- Q: Git and Mercurial are great for working while not always being on-line.
- A: :-)
Audience Question
- Q: Duplicate work isn’t a function of the source control. Manage that through a bug tracking system.
- A: :-)
Audience Question
- Q: SourceConnexion not available for XE6 or XE7.
- A: Send them an email and ask them to update.
Audience Question
- Q: It would be great if RAD supported TFS the way it does GIT and Subversion. Here’s another plugin that supports TFS: http://www.seenus.de/software/tfs.us/index.htm
- A: Great, good suggestion.
- Q: DVCS know about the changes to a file (and have the whole change tree locally) so are far better at merging van a state based system like SVN (though SVN has gotten better over the years)
- A: :-)
Audience Question
- Q: I’ve missed the Bluetooth as well as this current session – will it be available for download ?
- A: Yes, 1 – 2 week.s
- Q: The whole trick with any version control mechanism is to split work in such a way that you make the merges to be in disparate pieces of your code base (even when in the same file). Even though Git and Mercurial are far better at merging than for instance SVS, SVN and TFS, each merge is a risk.
- A: Sure
- Q: Sorry to post so much stuff, I’ll end with this one that I wrote about a year ago: http://wiert.me/2013/10/01/some-notes-and-links-on-dvcs-dynamic-version-control-systems/
- A: Thanks
Audience Question
- Q: re: SourceConneXion – we have a license for it and tried to use it, but it’s not even close to what we need. No any support for XE6&7
- A: Sorry.
Audience Question
- Q: For info, there is also Gitlab (https://about.gitlab.com/) if you want to host your own repositories. Fairly good and fairly feature rich
- A: Thanks.
https://www.youtube.com/watch?v=5oUVJ1HWUVY
- Q: TFS has two ways of briding to Git: one is fast and less functional the other slow and very rich in functionality. I forgot which is which; https://github.com/git-tfs/git-tfs and https://gittf.codeplex.com/
- A: Thanks.
- Q: Thanks for the great session. Well paced and well explained.
- A: Your Welcome
Audience Question
- Q: Do you have a tip for us how to treat common folders shared among projects?
- A: GIT has a feature called SubModules that can do this.
http://www.embarcadero.com/coderage/coderage-9-exhibit-hall
Audience Question
- Q: where does the name ‘CodeRage’ come from?
- A: I believe “Rage” is to party or other excitement. So CodeRage is a Code Party or Code Excitement
–jeroen
via: CodeRage 9 – Object Pascal Sessions.
Filed under: Appmethod, BitBucket, CVS, Delphi, Delphi XE6, Delphi XE7, Development, DVCS - Distributed Version Control, git, GitHub, Mercurial/Hg, Software Development, Source Code Management, SourceTree, Subversion/SVN, TFS (Team Foundation System)
