Updating version controlled subdirs
Awesome script for your Django apps or jQuery plugins collection, really.
$ wget http://gist.github.com/raw/455038/bb964288b9ad325e91497c9752908c5db30ae6d3/supdate.sh
Awesome script for your Django apps or jQuery plugins collection, really.
$ wget http://gist.github.com/raw/455038/bb964288b9ad325e91497c9752908c5db30ae6d3/supdate.sh
Git is one of the most well-known DVCSs, and it's originally created for Linux kernel development. Because of this, Git works __on__ patches. Patches, patches everywhere!
In CVCS every contributor sent a patch to one of commiters, who applied it by hand. Git was created for making this easy.
But DVCS was created for killing the patches! Really. Every user can create his branch (or fork), work on it and create a merge directive (pull request). You could say that it's possible with Git/Github? Yes, but Git users will patch and patch.
Well, the most annoying thing in Git: it supports only one workflow - shared working tree. It means that you have one working tree and you can switch between the branches with... oh, 'switch' command. This workflow is space-efficient and fast, but!! It's NOT easy to use! In conclusion, the shared worktree model is suitable only for BIG projects.
In Mercurial, it's the same, but a little easier. And in Bazaar, this model is very optional. Rebase is a plugin (: "Directory is a branch" is the right method. Because you can create shared WTs with it, but you will be able to see every branch in a file manager without opening .hidden_folders. And you can use plain simple branches, if the project is small. That's it!
P.S. This is a translation of my Russian post @ http://blog.myfreeweb.ru/post/why_git_isnt_right_dvcs/