Tag Info

Hot answers tagged

284

Note: See "EDIT" for the answer to the current question First of all, read Subversion Re-education by Joel Spolsky. I think most of your questions will be answered there. Another recommendation, Linus Torvalds' talk on Git: http://www.youtube.com/watch?v=4XpnKHJAok8. This other one might also answer most of your questions, and it is quite an ...


138

It's not overkill. The main reason why I started using Git and Mercurial over Subversion for personal projects is that initiating a repository is so much more easier. Wanna start a new project? > git init BAM! No need to set up a repository server nor check in a folder structure to support branching and tags into a subversion repository. Sharing your ...


88

Is there a point at which the process gets in the way and becomes an end unto itself? Heavy processes are common, unfortunately. Some people - especially management - religiously imagine that processes produce products. So they overdo the processes and forget that it's really a handful of hard-working, smart people who actually create the products. For ...


66

It means that when you do a commit to the version control system either everything you want to commit goes in, OR nothing does. In CVS, when you try to commit it's possible for the commit to succeed on several files, then fail on several others (because they've changed). This leaves the repository in an unfortunate state because half of your commit isn't ...


65

The premise you are questioning really is wrong: that one major advantage of Git over Subversion is that Git gives all the source code to the developer locally With both Subversion and Git you have your source code locally. With Git you have both your source code and a repository on your local machine. It goes something like this. Subversion: Your ...


58

No Git is so radically different from SVN it won't help you. If anything you will be looking for "update" and "commit" commands and wondering why everything is different. Start with Git from the Bottom Up and go from there. Contrasting a standard centralized update / commit pattern versioning system with Git is like comparing a bus with mass transit. A ...


54

Use tags to mark commits with version numbers: git tag -a v2.5 -m 'Version 2.5' Push tags upstream—this is not done by default: git push --tags Then use the describe command: git describe --tags --long This gives you a string of the format: v2.5-0-deadbeef ^ ^ ^ | | | | | SHA of HEAD | | | number of commits since last tag | last tag ...


44

I would contend that using Subversion for local personal projects is overkill, whereas Git is decidedly not. Git will take up less space (because of SVN's inefficient "revisions" concept versus Git's object snapshots), requires less setup (git init versus a dozen svnadmin commands and setting up permissions and so on), is easier to back up (git clone --bare ...


44

SVN is not dead at all. It's is still in extremely wide use, and it's not going anywhere anytime soon. SVN is much simpler to use than distributed version control, especially if you're not actually running a distributed project that needs distributed version control. If you only have one central repository (which is all your company will need if they're ...


41

The killer feature of distributed version control systems is the distributed part. You don't checkout a "working copy" from the repository, you clone an entire copy of the repository. This is huge, as it provides powerful benefits: You can enjoy the benefits of version control, even when you don't have internet access such as... This one is ...


41

You are confused about the role of a version control system. It is not and never was intended to be a backup system for a running web site. It does an extremely good job of managing static content so that it moved into production in a controlled manner. With proper use of tagging and automated checkouts, even fast changing sites can be kept in a version ...


33

Yes. You never know when more people might be brought on to the project. Also, repos allow you to rollback when you accidentally add something that doesn't work. You could use git for version control on your own machine without the need for a centralized repo. However, as long as you're using git, you might as well set up a repo on on GitHub. It only ...


30

To think you will never branch your own code is a little short-sighted. I've branched my own code several times, particularly when I was experimenting with a new approach I wasn't entirely convinced about yet. You'll eventually want the feature. This is coming from a long time Subversion user. Consolidating on one tool can really help make your life ...


28

Sites such as Ohloh and Github only give you an indication of what's going on in the open source world, and take no account of the (much larger) commercial/industrial/closed source side of things; Google Trends gives all sorts of other hits for "subversion" and "git" (both of which have other meanings outside the SCM world). The best indicator you're likely ...


26

Bitbucket uses mercurial (hg) and provides unlimited private and public repositories. It is free if you're not sharing your projects. Each project may also have a tracker and wiki associated with it (optional). Other than that, the service provides both HTTP and SSH uploads. I use Bitbucket to synchronize and keep personal projects of my own. Since I move ...


23

Hmm, having been a manager I have two immediate "knee-jerk" reactions to this: If you don't already have good reasons why are you pitching git other than to be trendy? Similarly, how is Subversion failing such that you need a replacement? I'm not, actually, being negative - I think there probably is a case to be made (dependent on circumstance) but if ...


23

Do you read it or not? Yes. If you do, how often Daily. Constantly. I work with numerous open-source projects (mostly Python-related) and must read the source because it's the most accurate documentation. and what's the procedure of reading the code? Um. Open and Read. Also, it's a bit difficult for newbies to deal with SVN - a ...


22

No, please don't even bother. Seriously, start from a DVCS. The fact that SVN is popular doesn't make it the standard. Linus Torvalds would tell you that it might rot your brain. Read this great article/introduction by Joel Spolsky called Subversion Re-education. You might also be interested in reading this other question: I'm a Subversion geek, why I ...


21

That's a lot like asking if it's ok for your website users to use Safari and Firefox. There aren't "flavors" of SVN. There are different SVN clients. That is a very different thing. It doesn't matter what client you use.


21

Companies typically suffer from what I'd like to call the Control-Flexibility dilemma. The less rules, structures and bureaucratic overhead the easier and faster it is to accomplish things (it's also more fun). However, it is equally easy to do "bad" things as "good" things. That means you're only fine when you have skilled employees which make few ...


21

if you know what you're doing, you shouldn't (and shouldn't ever have to) re-merge a branch in the first place. (Of course it's difficult to do when you're doing something fundamentally wrong and silly!) And therein lies the source of your confusion and the whole problem in general. You say that merging branches is "fundamentally wrong and silly". ...


21

I think the answer is given in the subsequent sentence: Keeping stable and dev code separate is precisely what source code control is supposed to let you do. By using #ifdef blocks, you are emulating functionality of a source control system with a C preprocessor. It's the wrong tool for the job. The downside is that you probably either end up ...


19

im advice not to commit the changes again and again but just a major change all at once It's wrong advice. project B where most im on the project (as of now) should it be SVN or folder backups You should use version control in any project. Backups and version control are not the same thing, although an external repository (centralized, or ...


19

A different tool is probably not going to solve your problem, I'd say you should read this article, I found it most helpful: http://thedailywtf.com/Articles/Source-Control-Done-Right.aspx I think the main point of the article is summed up here, but please do read it: In The End: Not Really About The Tools In all of the time I’ve spent working with ...


19

Disclaimer: I work for Atlassian DVCS does not discourage Continuous Integration as long as the developer pushes remotely on a regular basis to their own branch and the CI server is setup so that it builds the known active branches. Traditionally there are two problems with DVCS and CI: Uncertainty of integration state - unless the developer has been ...


19

Client tooling hasn't been mentioned yet. You can certainly do everything with a command line script but having GUI integration can be a real productivity boost. We work mostly with Visual Studio; integration into the IDE is definitely better with SVN than with Git right now. This may change in the future, but I'd certainly weigh this into your decision ...


19

Personally, I update my local versions daily. In the scenario you describe, I would go the extra mile by Creating a branch for the new, lengthy feature. Merge often from the mainline to this new branch. This way, You can check-in daily to preserve your code on the server You don't have to worry about breaking the build by checking-in. You can use the ...


18

The easiest way to set up a local server is to use svnserve: Subversion includes Svnserve - a lightweight stand-alone server which uses a custom protocol over an ordinary TCP/IP connection. It is ideal for smaller installations, or where a full blown Apache server cannot be used. You don't actually need a subversion server though, if all you want to do ...


18

Actually, there is little reason NOT to use a code repository. Just the fact that I can easily roll back to any prior version has covered my rear end so many times when I accidentally introduced regression bugs - despite my automated tests. If you need a recommendation - try Mercurial. It's really simple, yet very powerful. I would avoid Git because of its ...



Only top voted, non community-wiki answers of a minimum length are eligible