Not logged in
Log in now
Create an account
Subscribe to LWN
LWN.net Weekly Edition for May 16, 2013
A look at the PyPy 2.0 release
PostgreSQL 9.3 beta: Federated databases and more
LWN.net Weekly Edition for May 9, 2013
(Nearly) full tickless operation in 3.10
Which IDE's lack git support while supporting hg?
Hg Init: a Mercurial tutorial
Posted Feb 24, 2010 17:46 UTC (Wed) by smadu2 (subscriber, #54943)
Posted Feb 24, 2010 18:16 UTC (Wed) by emk (guest, #1128)
(We actually do allow a small amount of rebasing on certain projects at
work, but generally only on branches, and only when everybody involved has
Posted Feb 24, 2010 19:10 UTC (Wed) by astrophoenix (guest, #13528)
that part aside, I can tell you that I've tried to learn git a couple
times, and it's hard. I know if I stuck with it I could learn it, but I
have to deal with low-level devs who don't even really understand why we
should be using a VCS in the first place.
one day, I believe they'll finally have the user interface to git cleaned
up to where it is easier to learn. until then, thank goodness for hg.
Posted Feb 24, 2010 19:29 UTC (Wed) by dlang (✭ supporter ✭, #313)
1. you can run it under cygwin
2. you can run the msysgit (I think that's it's name) which is a windows native implementation of git.
Posted Feb 24, 2010 20:09 UTC (Wed) by dkrawchuk (subscriber, #21896)
Posted Feb 24, 2010 21:36 UTC (Wed) by paulj (subscriber, #341)
Git on Windows
Posted Feb 25, 2010 12:17 UTC (Thu) by epa (subscriber, #39769)
Posted Feb 24, 2010 20:26 UTC (Wed) by rfunk (subscriber, #4054)
That said, I'm acquainted with a Windows guy who's used to TortoiseSVN and
stubbornly refuses to switch to git. (He tried it and didn't like it.) And
he likes to make changes on the production server.
Posted Feb 24, 2010 21:47 UTC (Wed) by mikov (subscriber, #33179)
Posted Feb 24, 2010 21:52 UTC (Wed) by mikov (subscriber, #33179)
Understanding Git can certainly be expected from developers - if they can't figure Git, they should look for a another job, or at least I certainly don't want them on my team. However there are parts of the team that need not be so deeply technical, and yet have to interact with source control. Documentation writers, web designers, testers, etc. For them Git is a serious obstacle.
git "too hard to use"?
Posted Feb 25, 2010 17:48 UTC (Thu) by vonbrand (subscriber, #4458)
How is git "a serious obstacle"? It used to be only for experts in arcana, but today it is much more (user)friendly. Try a recent (1.6 or later) version on your "technically unsavy" users before jumping to conclusions. And don't try to show them the whole toolkit, keep at the dozen or so most used commands.
Posted Feb 26, 2010 0:41 UTC (Fri) by cortana (subscriber, #24596)
Posted Feb 26, 2010 1:24 UTC (Fri) by mikov (subscriber, #33179)
Imagine the simplest case of a centralized SVN-like workflow. At the very
least it requires understanding of remote repository tracking, merging
or rebasing. If people don't understand what is really going on, they
invariably hit a wall sooner or later.
Don't get me wrong. I don't think this is a shortcoming of Git. Git is
conceptually complex, because it is conceptually very powerful, and I like
it that way. But that means that "regular people" may never be able to use
it adequately. I am not sure what the solution is. In fact I am not sure
that I want a solution :-)
Posted Feb 26, 2010 19:06 UTC (Fri) by cmccabe (guest, #60281)
This is a good example of the kind of brain damage that years of using an inferior version control system can inflict on people.
Merging and branching aren't complicated and arcane operations that only special experts can handle. They're routine operations that every software developer needs to deal with. Every company that develops software will have multiple code branches active at the same time (unless they're small enough to fit in your garage.) Every developer will need to merge his changes forwards and backwards from time to time.
Subversion and CVS have historically given you very little help doing merges (although the situation has improved slightly recently.) This led to an attitude of superstition and fear towards branches. But if you don't understand branching and merging, you *will get burned*, no matter which VCS you use. It's better to just explain to people how things really work.
Posted Feb 26, 2010 20:11 UTC (Fri) by mikov (subscriber, #33179)
This is a good example of the kind of naivete that doesn't actually help
people use Git in the real world
The people I am referring to are not 'software developers'. I mentioned
documentation writers, testers, web designers, etc. They don't need and
_don't want_ to manage branches. Yet, every git-pull is potentially a merge
and git-rebase requires understanding of what commits are, the relation
between hashes and commits, etc.
Take the following example error message, which while technically very
meaningful, would be utterly confusing to them:
"error: failed to push some refs to '....'
To prevent you from losing history, non-fast-forward updates were rejected"
Refs? non-fast-forward? WTF?
Whether they have been 'damaged' by using 'inferior VCS' is
questionable, but regardless, they are what they are, and they may be fully
competent at their respective jobs without understanding Git or knowing
what a SHA hash is.
From experience, the lock-modify-unlock model and Visual Source Safe
specifically, is the best VCS for non-developers. They really really like
that by default a file can be checked out and modified only by a single
I am thinking that the right solution to this kind of problem may be to
develop reverse bridges. A bridge from Git to SVN, or from Git to VSS. So
that the main repository can be kept in Git, but parts of the team can
interact with it through the safe environment of "lock-modify-unlock".
Posted Feb 26, 2010 23:29 UTC (Fri) by ldo (subscriber, #40946)
The people I am referring to are not 'software developers'. I mentioned documentation writers, testers, web designers, etc. They don't need and don't want to manage branches.
Yes they do. Since when do documentation writers not need to manage revisions to their documentation?
Yet, every git-pull is potentially a merge and git-rebase requires understanding of what commits are, the relation between hashes and commits, etc.
What are they doing using rebase? You should never use that on a branch that has been published for others to see.
From experience, the lock-modify-unlock model and Visual Source Safe specifically, is the best VCS for non-developers. They really really like that by default a file can be checked out and modified only by a single person.
Thats not how the real world works. Even with common-or-garden office documents, its common for them to be passed around to different people who will make comments and submit annotations, all of which have to be collated and reconciled together somehow. A distributed VCS merely formalizes the process. The more complex the documentation, the more important such formalization becomes.
Concepts of branches, tagging and merging are common to all modern version control systemstheres nothing specific to Git about any of them. Whats different about Git is the fact that your entire commit history is nothing but a DAG, and branches and tags are just pointers into that DAG.
Posted Feb 27, 2010 0:23 UTC (Sat) by mikov (subscriber, #33179)
They don't want to create and manage branches. They want to work on
branches others have created. However in Git creating a branch is often
implicit or required in ordinary work-flow, which makes it confusing for
> What are they doing using rebase? You should never use that on a branch
> that has been published for others to see.
This is not the place and time to explain how Git works, but in short, if
you don't want to create an implicit branch when pulling, you have to do a
"git-pull --rebase". Rebasing is an essential activity when maintaining
your local repository, but it can also be confusing to non-technical
> Thats not how the real world works. Even with common-or-garden office
> documents, its common for them to be passed around to different people
> who will make comments and submit annotations, all of which have to be
> collated and reconciled together somehow. A distributed VCS merely
> formalizes the process. The more complex the documentation, the more
> important such formalization becomes.
I am sorry, but that it is nonsense. It is impossible to merge binary files
like .DOC, .PDF, artwork, etc. Those ate precisely the type of documents
that non-developers need. Branches are actively harmful to them.
> Concepts of branches, tagging and merging are common to all modern
> version control systemstheres nothing specific to Git about any of
> them. Whats different about Git is the fact that your entire commit
> history is nothing but a DAG, and branches and tags are just pointers
> into that DAG.
I am not interested in Git advocacy. As I mentioned earlier, I find Git
excellent for development (perhaps the best VCS there is), but too complex
for non-developers (and actually for many developers too). The latter is an
observable fact, not just an opinion. The reluctance to accept it is a bit
perplexing to me.
Posted Feb 28, 2010 20:25 UTC (Sun) by cmccabe (guest, #60281)
It's impossible to merge them *automatically*. This is a flaw in the file format and toolset, and has nothing to do with version control per se.
If you have more than one documentation writer on the payroll, you're already spending time merging changes manually. Even if you make each chapter (or whatever) of documentation a separate file, there will still be some cross-references and dependencies.
If you would have used .tex and .svg, you wouldn't have this problem, or at least not to this extent. If you like Microsoft, their Sharepoint stuff is designed to solve exactly this problem-- to make office documents mergeable.
It's hard to see how you can get away from using subversion and mandatory locking with the workflow you have now. But this is not because employees are too stupid to understand branching. It's because the tools you are using are old and rusty, and don't support the diff operation. This also will make it hard for you to audit what people have done. If I make a few spelling corrections to the PDF and then commit it as "added whole new section on zebras" how is my manager going to know the difference? You're just using the honor system, basically.
By the way, if you need mandatory locking and good handling of binary files, you might also check out Perforce. They have good GUI and Windows support (although subversion has been improving a lot lately.)
Posted Feb 27, 2010 15:05 UTC (Sat) by man_ls (subscriber, #15091)
From experience, the lock-modify-unlock model and Visual Source Safe
specifically, is the best VCS for non-developers.
Copyright © 2013, Eklektix, Inc.
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds