Jump to content
Mike Torrettinni

Why should I use good source control versioning system?

Recommended Posts

10 minutes ago, Mike Torrettinni said:

I'm trying out Fork now, what a change from 'right-click' TortoiseGit.

I use Fork and cannot say enough good things about it. TortoiseGit is the poor cousin of all the TortoiseXXX tools (TortoiseHG is the best one imho - for mercurial). I never did get comfortable with TortoiseGit and would rather use the command line than it!

  • Like 1

Share this post


Link to post
59 minutes ago, Vincent Parrett said:

would rather use the command line than it!

I know I will eventually learn command line for git, but I'm glad I don't need to do it, yet. I will probably try other git gui tools, like SourceTree, before settling with one.

Do you have any experience with others?

Share this post


Link to post
1 minute ago, Mike Torrettinni said:

Do you have any experience with others?

 I used to use SourceTree, but found it a confusing mess as it evolved. I've tried a few others but don't remember the names, none of them lasted more than a day before I went back to the command line. Fork is the first tool that doesn't have me switching back to the command line all the time, although I do still relapse occasionally! 

  • Like 1
  • Thanks 1

Share this post


Link to post
14 hours ago, Mike Torrettinni said:

 

"That seems like an excellent way to make Git even more complicated!
 Seriously, the most straight-forward and practical methods are the ones which will encourage people to use Git. If you over-engineer things people simply give up.
"

 

Anybody has any idea what the comment is referring to? I don't see any special way of using git by Delphi developers... git is git, Delphi is Delphi.

I did not read the article but a comment like this can only come from a person that has never worked in a team or on multiple features/versions.

Or they actually did and had a total mess managing their stuff - I remember several video games in the past where bigger feature updates constantly introduced regressions that were already fixed in previous bugfix patches simply because they forgot to reapply those commits to their feature revision (no guess, this has been confirmed by the devs)

Edited by Stefan Glienke
  • Like 1

Share this post


Link to post
44 minutes ago, Stefan Glienke said:

I did not read the article but a comment like this can only come from a person that has never worked in a team or on multiple features/versions.

Or they actually did and had a total mess managing their stuff - I remember several video games in the past where bigger feature updates constantly introduced regressions that were already fixed in previous bugfix patches simply because they forgot to reapply those commits to their feature revision (no guess, this has been confirmed by the devs)

Makes sense. It was just confusing because it seemed like the comment could have some logic, but it was commenting basic git flow - as if it's over engineered.

It's good to know I'm not using git completely wrong.

Share this post


Link to post
12 hours ago, Vincent Parrett said:

 I used to use SourceTree, but found it a confusing mess as it evolved. I've tried a few others but don't remember the names, none of them lasted more than a day before I went back to the command line. Fork is the first tool that doesn't have me switching back to the command line all the time, although I do still relapse occasionally! 

I've not tried Fork but based on the screenshots it's an almost identical clone of SourceTree...

Share this post


Link to post
2 hours ago, Anders Melander said:

I've not tried Fork but based on the screenshots it's an almost identical clone of SourceTree...

From the looks yes because it makes sense - however you already cloned a repo with it when SourceTree did not even finish starting...

Share this post


Link to post

For me, right now, git is it.  However, for really big teams and for those that must still support older versions (remember when that was a thing?) Clearcase worked the best (about 200 developers back then, mostly C, some C++, some Delphi) supporting multiple versions and all of it tied in to bugs and design.  The one I didn't much care for was Continuus, but that was mostly the user interface (the idea was great though.)  I never used Starteam from Borland, but I know folks who did and liked it.

Share this post


Link to post
1 hour ago, John Terwiske said:

I never used Starteam from Borland, but I know folks who did and liked it.

I liked it. Right up the point where they rewrote the client completely - in Java :classic_huh:

Share this post


Link to post

Thank you all for recommendations!

I installed git and tested a few tools - with private github repositories:

- TortoiseGit - first one to use, so I was still learning everything, but it was annoying to use with right-click from explorer

- Fork - next one I tried, and of course I was impressed by it, compared to TortoiseGit, fast UI, easy to use

- SourceTree - feels like copy of Fork, but free

- GitKraken - you need to register account with them - skipping

- SmartGit - doesn't have an option to recognize repository hosting, others have this option - skipping

- Tower - similar to Sourcetree and Fork, but little sluggish, crammed UI

 

For now staying with SourceTree - it's like like Fork, but free.

Share this post


Link to post
6 minutes ago, Mike Torrettinni said:

For now staying with SourceTree - it's like like Fork, but free.

At work most of my colleagues prefer SourceTree. I find the UI sluggish and hard to complete simple tasks.

I personally prefer VS Code's implementation (having it installed as the default text editor on all of my PCs might be a bias-factor, though).

For me, Git handling is really easy, fast and easy to understand.

 

As others already pointed out it's all a matter of taste. Some of my colleagues are still starting up Visual Studio for a simple pull, so... 🙂

Edited by aehimself

Share this post


Link to post
2 minutes ago, aehimself said:

I find the UI sluggish and hard to complete simple tasks.

I'm a single developer, so the stress test I put on the tool is minimal. I read a lot of bad reviews on it, but for me it works flawlessly. I do remember it looks completely different than what I saw a couple of years ago at the client's site.

I use latest version, not sure what that version was.

Share this post


Link to post
13 minutes ago, Stefan Glienke said:

Not sure you missed or ignored it but I'll throw this in here for completeness and because it's free: Git Extensions.

No, I guess I missed it. I like the checklist at the beginning and what is missing!

Share this post


Link to post
1 minute ago, Mike Torrettinni said:

No, I guess I missed it. I like the checklist at the beginning and what is missing!

Oh, no, it crashed on first refresh to show a change in repository. Shame.

Share this post


Link to post

As I mentioned I use SourceTree too and I'm fairly satisfied with it. Latest version is 3.3.9.

The basic functionality works well but there are some annoying bugs with regard to BitBucket integration that keeps being fixed and then come back after a few releases:

  • The BitBucket integration (Check out in SourceTree) crashes SourceTree: SRCTREE-7109
  • The remote account extended integration option isn't persisted: SRCTREEWIN-12912

The worst thing however is the poor performance of the integrated Diff view. Select a large DFM-file and it can take 20-30 seconds before the UI responds. Stage one hunk and you have to wait for the diff to complete again. Now imagine having to cherry pick changes from a large DFM with hundreds of small changes. In this scenario its best to have an alternative tool for just that case.

 

That's one of the nice things with Git; All the tools are compatible. You can stage some changes in one tool and others in another. I usually handle file renames and moves by staging in TortoiseGit and then committing in SourceTree.

 

Oh and one absolutely needs to have an external Diff and Merge tool. I use Araxis for Diff and Plastic for Merge. Plastic is free if you just install the community edition.

Share this post


Link to post
2 hours ago, Anders Melander said:

I use Araxis for Diff and Plastic for Merge

I assume you mean SemanticMerge rather than plasticscm (same company, different product)? I didn't think it had a parser for delphi?  That would be a fun project, using https://github.com/RomanYankovsky/DelphiAST perhaps.   

 

We use Beyond Compare  (written in Delphi, built with FinalBuilder!) - can't fault it and the price is very reasonable. 

  • Like 1

Share this post


Link to post
1 minute ago, Vincent Parrett said:

I assume you mean SemanticMerge rather than plasticscm (same company, different product)?

No. PlasticMerge is a part of PlasticSCM. So what you do is to install the free version of PlasticSCM and then just use the stand alone merge tool.

It used to be a separate download but it's long been a part of the SCM suite.

 

I haven't tried SemanticMerge. I believe there's an abandoned project for a Delphi parser somewhere out there.

Yup, found it: https://github.com/andremussche/SemanticMergeDelphi  (last commit 7 years ago)

Linked to from here: http://blog.plasticscm.com/2015/09/custom-languages-in-semantic-version.html

Share this post


Link to post
36 minutes ago, Anders Melander said:

I haven't tried SemanticMerge. I believe there's an abandoned project for a Delphi parser somewhere out there.

Yup, found it: https://github.com/andremussche/SemanticMergeDelphi  (last commit 7 years ago)

Linked to from here: http://blog.plasticscm.com/2015/09/custom-languages-in-semantic-version.html

Interesting. I haven't used Semantic Merge either, but was considering trying it for our .net code(c#), we're in the process of migrating a huge codebase to .net core and have had quite a few merge issues lately semantic merge could possibly have dealt with better. 

 

I have so many other open source projects on the go at the moment, so I will have to restrain myself from taking on another one (tempting as it is!) - I also have a day job, admittedly working for myself, but I often have to restrain myself from working on fun projects so I can earn a living!

  • Like 2

Share this post


Link to post
9 hours ago, Anders Melander said:

It used to be a separate download but it's long been ahaven't tried SemanticMerge. I believe there's an abandoned project for a Delphi parser somewhere out there.

Yup, found it: https://github.com/andremussche/SemanticMergeDelphi  (last commit 7 years ago)

Linked to from here: http://blog.plasticscm.com/2015/09/custom-languages-in-semantic-version.html

I'm not quite sure and can't look it up right now, but if that's the project i tried, it's for an older version and is dangerous to use with the later ones: Because of changes to the command line parameters, it will overwrite your changes if not fixed!

I wrote a fix back then, be should also be on GitHub, but that was a long time ago and I lost interest in it too, so I can't guarantee that it will still work.

 


EDIT: Yes it's the one.

Here is the bug report: https://github.com/andremussche/SemanticMergeDelphi/issues/4

And here is my fix: https://github.com/dummzeuch/pas2yaml

 

I also suggested to the developers of SemanticMerge to have an API version number passed to the filters so these can determine whether they support it or not. No idea whether they adopted this, I lost interest since Beyond Compare does most of what I need and I already have a license of it.

Edited by dummzeuch

Share this post


Link to post
12 hours ago, Mike Torrettinni said:

but it was annoying to use with right-click from explorer

I added shortcuts to my file explorer with main commit/push/pull/log commands and rarely use context menu.

12 hours ago, Mike Torrettinni said:

doesn't have an option to recognize repository hosting, others have this option

What do you mean?

I use SmartGit for SVN projects and find it quite awkward

Share this post


Link to post
3 hours ago, Fr0sT.Brutal said:
15 hours ago, Mike Torrettinni said:

doesn't have an option to recognize repository hosting, others have this option

What do you mean?

It didn't automatically find/add github account and repositories, while other tools did. I only set github credentials and remote repositories once, then all the tools (except SmartGit) just pulled the info from git and everything was setup.

Share this post


Link to post
9 hours ago, Vincent Parrett said:

For those struggling with the git commandline

That's me :classic_smile:

The only times I've had to use Git from the command line is when Git has f*cked something up (yes, I blame it on Git :classic_wink:). Git is a powerful tool but when you shoot yourself in the foot with it it leaves a rather large hole.

 

I can recommend the Atlassian Git tutorials even for those not using Atlassian tools. Most of the tutorials are tool agnostic.

https://www.atlassian.com/git

  • Like 2

Share this post


Link to post
1 hour ago, Anders Melander said:

I can recommend the Atlassian Git tutorials even for those not using Atlassian tools. Most of the tutorials are tool agnostic.

https://www.atlassian.com/git

I can double on both. I started to learn Git on the very same tutorials and they are indeed very informative and easy to understand. And yeah, those tools... 🙂

Share this post


Link to post

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×