git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: What's the best way to make my company migrate to Git?

From
ASAndrew Sayers <andrew-git@pileofstuff.org>
Date
May 22, 2010, 10:52 UTC
Message-ID
<4BF7B751.7050704@pileofstuff.org>
In-Reply-To
<AANLkTikwpjtJnR856CHr_O3856JoMrFBgOQGODXNBbeI@mail.gmail.com>
Hi Daniele,

I'm a developer getting towards the end of introducing my company to Git. Here are some thoughts based on the (mis)steps I took.

I found that advocating specific steps wasn't that effective - I just came across as being pushy and hard to work with. It was more effective to politely show off what I could do with git-svn, and let people get jealous enough to work the "how" out for themselves. Here are some examples:

I would quietly bisect a hard-to-fix bug, then say "if it's any help, git tells me it was introduced by so-and-so in revision N". Sometimes it was no help, but sometimes it was enough to provoke the appropriate "aha!" for the bug.

I would nonchalantly use as many git features as I could while showing people my work. So "here's the diff for my work... grr whitespace ... hang on I'll add `-w`... anyway, these are the REAL differences...". The fact it was all in glorious technicolour went without mention.

When we had a big merge that nobody was looking forward to, I said "let me do it! It'll give me a chance to practice my git-fu".

When I used svn on somebody else's command-line, I'd blame the mistakes I made on being spoiled by Git. So "I'll just do an `svn log`... argh no! Control-C! Control-C! Right, `svn log | less`... my bad, git pipes to less automatically."

Over the course of a few months, people became convinced that Git was something that makes you more productive. Our lead developer had a go with git-svn for a while, before our boss decided we should all make the switch.

I tried to make git-svn as painless as possible with some svn-like aliases and a cheatsheet, which I'd be happy to upload if the list could suggest a good place to put a PDF and some text.

The move worked for a while, but it turned out that one-and-a-half git experts supporting the rest of the team wasn't enough to stop people from making rookie mistakes like `git merge`ing into an SVN branch with unpushed changes. We had to accelerate our move to git on the server, and I got a lot of exercise and not much work done that month as I dashed from desk to desk.

Things gradually calmed down as people got more comfortable with git. But I expect to be occasionally called over for a long time as people learn new tricks - "how do I, like, cherry-unpick a single commit?"

	- Andrew Sayers
Previous: Joshua JensenNext: Daniele Segato
Message 6 of 27 in “What's the best way to make my company migrate to Git?”
  1. Daniele SegatoMay 21, 2010
  2. Jakub NarebskiMay 21, 2010
  3. Daniele SegatoMay 22, 2010
  4. Jakub NarebskiMay 22, 2010
  5. Joshua JensenMay 22, 2010
  6. Andrew SayersMay 22, 2010
  7. Daniele SegatoMay 22, 2010
  8. Andrew SayersMay 23, 2010
  9. Daniele SegatoMay 24, 2010
  10. Lin MacMay 23, 2010
  11. Andrew SayersMay 23, 2010
  12. Michael J GruberMay 25, 2010
  13. Andrew SayersMay 31, 2010
  14. Michael J GruberJun 1, 2010
  15. Daniele SegatoJun 1, 2010
  16. Alexander IljinJun 1, 2010
  17. Daniele SegatoJun 1, 2010
  18. Alexander IljinJun 1, 2010
  19. Erik Faye-LundJun 1, 2010
  20. Daniele SegatoJun 1, 2010
  21. Andrew SayersJun 1, 2010
  22. Andreas KreyJun 2, 2010
  23. Michael J GruberJun 2, 2010
  24. Andrew SayersJun 5, 2010
  25. Steven MichalskeJun 6, 2010
  26. Sylvain RabotJun 2, 2010
  27. Daniele SegatoMay 23, 2010

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.