Versioning for a single developer project

Programming, for all ages and all languages.
User avatar
Owen
Member
Member
Posts: 1700
Joined: Fri Jun 13, 2008 3:21 pm
Location: Cambridge, United Kingdom
Contact:

Re: Versioning for a single developer project

Post by Owen »

Solar wrote:On the "git -> overkill" tangent:

Link to Thorvals talking about git

1) I don't like the arrogance he repeatedly expresses during his speech. In fact, I think Thorvals is a git.
I don't see any real arrogance in that speech; in fact, I see lots of jokes at his own expense about his (not entirely undeserved) reputation for arrogance.
Solar wrote:2) git is *aimed* at a massive-parallel, multi-merge project (like the Linux kernel undoubtedly is). It's great for that purpose, no doubt, but many of its features, and its overall workflow, are especially aimed at that very purpose.
Don't use them features then. You don't have to. Git is like C: it contains lots of useufl features. Lots of features to hang yourself with too. But they're optional.
Solar wrote:3) Those features and workflows make git less-than-straightforward to learn and use, especially if you had previous experience with "classic" systems (like CVS, SVN, ...).

4) For projects who do not have the requirements mentioned under 2), "man git" and "man git-clone" are, IMHO, overkill. Just go along with "XYZ checkout", "XYZ add" and "XYZ commit".

Code: Select all

git clone http://some.url/repo.git project
cd project
$EDITOR somefile
$EDITOR newfile
git add newfile
git commit -a
git push
To me, doesn't look a lot different. Hell of a lot faster too (Except for the initial clone. That depends on how big the history is and the speed of your connection; still often faster)

Oh, and to the person who complained about using vim:

Code: Select all

echo "export EDITOR=nano" >> ~/.bashrc
;)
User avatar
XanClic
Member
Member
Posts: 138
Joined: Wed Feb 13, 2008 9:38 am

Re: Versioning for a single developer project

Post by XanClic »

Owen wrote:Oh, and to the person who complained about using vim:
That's not true, I actually love vim. :wink:
(I just wanted to show how simple using git is to me, because using vim is also very simple to me)
earlz
Member
Member
Posts: 1546
Joined: Thu Jul 07, 2005 11:00 pm
Contact:

Re: Versioning for a single developer project

Post by earlz »

Owen wrote: Don't use them features then. You don't have to. Git is like C: it contains lots of useufl features. Lots of features to hang yourself with too. But they're optional.
I would say Git is a lot closer to C++ than C :)
User avatar
Solar
Member
Member
Posts: 7615
Joined: Thu Nov 16, 2006 12:01 pm
Location: Germany
Contact:

Re: Versioning for a single developer project

Post by Solar »

Kevin wrote:However, with SVN this means that for almost any operation you need to access the server (obviously for commit, but also including log, diff, ...). So if you're offline you basically can't work. And if your connection to the server isn't really fast, you'll definitely notice the difference compared to working on a local repository as in git.
That's not correct.

Keep in mind what you are comparing. SVN was written not as the perfect solution to version control, but as a replacement for the most commonly used VCS of the time, which was CVS. Some of the core improvements of SVN over CVS are:
  • several SVN commands, including 'svn diff' (working copy against repo HEAD) and 'svn revert', work without access to the server. (I admit that 'svn log' requires connection.)
  • SVN transmits much less data over the network than CVS, and thus is much faster on most operations.
Owen wrote:I don't see any real arrogance in that speech; in fact, I see lots of jokes at his own expense about his (not entirely undeserved) reputation for arrogance.
Hm. We seem to have two very different definitions for "arrogance"...
Owen wrote:
Solar wrote:2) git is *aimed* at a massive-parallel, multi-merge project (like the Linux kernel undoubtedly is). It's great for that purpose, no doubt, but many of its features, and its overall workflow, are especially aimed at that very purpose.
Don't use them features then. You don't have to. Git is like C: it contains lots of useufl features. Lots of features to hang yourself with too. But they're optional.
And just like C/C++, I want to understand a tool / language before I start using it.

Sure, I could just go along with the commands you gave me and use them. But until I understand what's happening, I won't be confident or happy about it, because I would be feeling my way in the dark.

I understand SVN. I know that none of the additional features of git make any difference to me, and I know that - to use git confidently - I would have to spend quite some time reading. And none of the projects I work on, most importantly including office work, actually use git - so that reading / learning would earn me nothing. On the other hand, being competent in SVN made me the #1 contact for SVN-related problems in our department... it's a ROI thing.
Every good solution is obvious once you've found it.
User avatar
Combuster
Member
Member
Posts: 9301
Joined: Wed Oct 18, 2006 3:45 am
Libera.chat IRC: [com]buster
Location: On the balcony, where I can actually keep 1½m distance
Contact:

Re: Versioning for a single developer project

Post by Combuster »

I understand SVN. I know that none of the additional features of git make any difference to me, and I know that - to use git confidently - I would have to spend quite some time reading. And none of the projects I work on, most importantly including office work, actually use git - so that reading / learning would earn me nothing. On the other hand, being competent in SVN made me the #1 contact for SVN-related problems in our department... it's a ROI thing.
I might add to that, that I never saw any VCS except for subversion (or none :shock: ) in all professional environments that I have seen so far.
"Certainly avoid yourself. He is a newbie and might not realize it. You'll hate his code deeply a few years down the road." - Sortie
[ My OS ] [ VDisk/SFS ]
Kevin
Member
Member
Posts: 1071
Joined: Sun Feb 01, 2009 6:11 am
Location: Germany
Contact:

Re: Versioning for a single developer project

Post by Kevin »

Solar wrote:Keep in mind what you are comparing. SVN was written not as the perfect solution to version control, but as a replacement for the most commonly used VCS of the time, which was CVS. Some of the core improvements of SVN over CVS are:
  • several SVN commands, including 'svn diff' (working copy against repo HEAD) and 'svn revert', work without access to the server. (I admit that 'svn log' requires connection.)
  • SVN transmits much less data over the network than CVS, and thus is much faster on most operations.
Sure, I know that, and there are much more advantages over CVS. This is why I was advocating SVN then, just like I'm advocating git now which I personally feel is the next big step forward (be glad I didn't discuss about SVN with you then - you wouldn't use it today because of the aggressive advertising! ;)). Transmitting nothing over the network (except for explicit syncing with pull/push) still beats transmitting less than CVS.

And yes, you're right about diff. It needs network access only when comparing old versions (but the equivalent of git show <commit> is an svn diff between revision n and n+1, IIRC - it needs network access anyway). Recently I've had to use CVS again and needing the network even for comparing to the latest HEAD was really annoying. It just makes the operation slow.
And none of the projects I work on, most importantly including office work, actually use git - so that reading / learning would earn me nothing.
git-svn exists and is my favourite SVN client nowadays. Pretty nice to work with, so I don't mind if the server still uses SVN. For me as a user it looks more or less the same as any other repository. And I guess I should look into git-cvs some time...
Developer of tyndur - community OS of Lowlevel (German)
User avatar
Solar
Member
Member
Posts: 7615
Joined: Thu Nov 16, 2006 12:01 pm
Location: Germany
Contact:

Re: Versioning for a single developer project

Post by Solar »

Kevin wrote:...be glad I didn't discuss about SVN with you then - you wouldn't use it today because of the aggressive advertising!
As a CVS user at the time, the advantages of SVN - or rather, the complete lack of disadvantages - were immediately obvious to me.
git-svn exists and is my favourite SVN client nowadays.
Perhaps I should look into that first. ;-)
Every good solution is obvious once you've found it.
Kevin
Member
Member
Posts: 1071
Joined: Sun Feb 01, 2009 6:11 am
Location: Germany
Contact:

Re: Versioning for a single developer project

Post by Kevin »

Solar wrote:As a CVS user at the time, the advantages of SVN - or rather, the complete lack of disadvantages - were immediately obvious to me.
That's a good point actually. SVN looks pretty much like CVS on the surface, whereas git doesn't. It's probably a case of the German proverb "Was der Bauer nicht kennt, frisst er nicht" (for those not speaking German, literally it translates to something like "What the peasant doesn't know he won't eat"). This is why I hesitated to switch initially, too, but in hindsight I consider it a larger step forward than from CVS to SVN (though I must admit that my use cases look different now from what they were in CVS times).
Developer of tyndur - community OS of Lowlevel (German)
earlz
Member
Member
Posts: 1546
Joined: Thu Jul 07, 2005 11:00 pm
Contact:

Re: Versioning for a single developer project

Post by earlz »

Combuster wrote:
I understand SVN. I know that none of the additional features of git make any difference to me, and I know that - to use git confidently - I would have to spend quite some time reading. And none of the projects I work on, most importantly including office work, actually use git - so that reading / learning would earn me nothing. On the other hand, being competent in SVN made me the #1 contact for SVN-related problems in our department... it's a ROI thing.
I might add to that, that I never saw any VCS except for subversion (or none :shock: ) in all professional environments that I have seen so far.
What you never seen Source Safe or Team Foundation Server?

Oh, or are you talking about free sane VCSs?
User avatar
Combuster
Member
Member
Posts: 9301
Joined: Wed Oct 18, 2006 3:45 am
Libera.chat IRC: [com]buster
Location: On the balcony, where I can actually keep 1½m distance
Contact:

Re: Versioning for a single developer project

Post by Combuster »

What you never seen Source Safe
In my long gone illegal copy at home. :wink: Do you think people are stupid enough to have a visual studio enterprise license for every employee, rather than just the programmers. It saves them a *lot* of money not to pay for a license for the design, art, and management departments, who all want access to a repo.
"Certainly avoid yourself. He is a newbie and might not realize it. You'll hate his code deeply a few years down the road." - Sortie
[ My OS ] [ VDisk/SFS ]
User avatar
Solar
Member
Member
Posts: 7615
Joined: Thu Nov 16, 2006 12:01 pm
Location: Germany
Contact:

Re: Versioning for a single developer project

Post by Solar »

Actually, in my first company they did use VSS. And the application was VBA for Access. About 100 tables, modules, and forms, In a single .mdb file. Oh, the fun of having to wait for the other dev'er to check in, and having to merge your changes into his version (which, of course, was different from the one you started with). While the next dev'er prods you for taking so long.

And the server being unavailable half the time.

That was fun. :-D
Every good solution is obvious once you've found it.
earlz
Member
Member
Posts: 1546
Joined: Thu Jul 07, 2005 11:00 pm
Contact:

Re: Versioning for a single developer project

Post by earlz »

Solar wrote:Actually, in my first company they did use VSS. And the application was VBA for Access. About 100 tables, modules, and forms, In a single .mdb file. Oh, the fun of having to wait for the other dev'er to check in, and having to merge your changes into his version (which, of course, was different from the one you started with). While the next dev'er prods you for taking so long.

And the server being unavailable half the time.

That was fun. :-D
D: You poor soul. Surely there must be some group therapy needed. Ok, I found this place "Visual Source Safe Users Anonymous"

"Hello, my name is Jacob and I'm a visual source safe user."
"hello, jacob."
<random guy in the back muttering> "I tried to merge and the server burst into flames. My wife died in the fire. If only I had known. no, it can't be. get out of my head. Stop versioning thoughts!"


I really can not believe that people *pay* for source safe... I'm so lucky I talked my boss out of using it..
User avatar
Solar
Member
Member
Posts: 7615
Joined: Thu Nov 16, 2006 12:01 pm
Location: Germany
Contact:

Re: Versioning for a single developer project

Post by Solar »

But... but... but... it's Microsoft! It has to be good, hasn't it? :twisted:

(Actually, I know someone who, if given any choice, will always chose the Microsoft product, because it's such a great company and their software has to be superior. I.e., he expressed confusion over why the company even evaluated Subversion when Microsoft offers VSS. Or why we are still using the MoinMoin wiki when there's a wiki in MS Sharepoint... when we talked about the "war on terror" recently, he expressed confusion about why they would target something like the World Trade Center, when hitting the Microsoft campus would be so much more damaging to the economy "because everyone needs their patches and updates". I tend to give him a wide berth, just in case his condition is contagious...)
Every good solution is obvious once you've found it.
User avatar
AndrewAPrice
Member
Member
Posts: 2299
Joined: Mon Jun 05, 2006 11:00 pm
Location: USA (and Australia)

Re: Versioning for a single developer project

Post by AndrewAPrice »

I've used many other IDEs (proprietary, opensource, and freeware) yet MSVS is my IDE of choice. I applaud the Visual Studio team for a wonderful piece of software.

I've only seen SVN and Perforce. Actually, I'm not sure if the if we used Perforce because of the features per-se but because it was free for <=5 workstations.

I once knew someone who thought because Linux (and other software) is open-source and anyone can access the code and change it, meant that anyone could place security backdoors into the code and every Linux-computer would then be compromised.

There are people who distrust opensource/free-software because they think it must be worser than a commercial counterpart. In a way, this is true since open source software is usually written by volunteers, and have a hard time recruiting user-interface designers, artists, professional testers, which while might not be important to the core functionality, it certainly makes the product appear less professional, intuitive, and/or productive.

But on the same note, I have also seen commercial software sell for a high price that has been of inferior quality to open source counterparts. I certainly think Open Office beats all those people that try to sell a basic text editor with fonts and macros for $100, Mozilla Firefox beats anyone who thinks embedding a browser control into a window deserves people paying them $20 for a web browser, and Ogre3D is much more feature packed than the majority of commercial game engines out there.
My OS is Perception.
User avatar
Colonel Kernel
Member
Member
Posts: 1437
Joined: Tue Oct 17, 2006 6:06 pm
Location: Vancouver, BC, Canada
Contact:

Re: Versioning for a single developer project

Post by Colonel Kernel »

Solar wrote:when we talked about the "war on terror" recently, he expressed confusion about why they would target something like the World Trade Center, when hitting the Microsoft campus would be so much more damaging to the economy "because everyone needs their patches and updates".
I was actually at the Microsoft campus on 9/11, and I was thinking the same thing... then again, it was easy to be paranoid that day. :shock:

Does anyone actually still use VSS? What a nightmare...
Top three reasons why my OS project died:
  1. Too much overtime at work
  2. Got married
  3. My brain got stuck in an infinite loop while trying to design the memory manager
Don't let this happen to you!
Post Reply