I use git on windows because it works well for me on mac and linux.
I tried using git as I do on other platforms, switching between
branches while waiting on code reviews. This didn't work so well.
Switching branches often means having to rerun gclient sync, restart
visual studo, wait half an hour for a rebuild, and have visual studio
freeze when you right click on code because its code index is not up
to date. If you walk by my desk, and see a one button mouse plugged
in to my windows box, you know I just ran git pull --rebase && gclient
sync . It is easy to loose half a day switching branches with VS.
I don't want to go back to subversion, because I like being able to
commit parts of a change locally. So I use git on windows for at most
one change at a time. When I am waiting on a review, I usually work
on a mac or linux change. Multiple platforms are the way I manage to
avoid stalling.
> - How are you set up? Specifically,
> - Source code: Do you have multiple directories checked out, and
> switch between them? What are the gotchas? How do you sync between
> them?
I have a bare git repo set up on my linux box. I use it to push
changes from clients on all three platforms, and pull to another
platform. I tried pulling and pushing directly from one client to
another, but it got too confusing. I always commit from linux.
> - Git: Do branches that track other branches?
I only track origin/trunk.
> - Visual Studio: Do you have multiple copies running at once?
Is that possible? Restarting visual studio and waiting for the
rebuild it always decides it needs is too slow to be useful in
practice.
> Do you use Visual Assist X, or any other Add-Ins?
Never heard of them.
> - Etc.
> - What problems do you run into using Cygwin, git and Windows
> (especially 7)?
Like anything that involves disk IO in cygwin, gclient is very very
slow. Syncing used to take 6 hours before I discovered 'gclient
-j10'. I got in the habit of start it before I go home at night.
Sometimes cygwin windows freeze. No idea why. My .bashrc cds into
git/src, so that killing a cygwin window and opening another requires
no typing.
Killing a command will often leave a cygwin hosted shell in a strange
state. I reflexively run 'stty sane' after control-c.
>
> Here are some of the issues I run into (I'm using Windows 7):
>
> - I basically only have one checkout directory that I normally use.
> - If I don't unload the project in Visual Studio, sometimes git fails
> when I try to switch branches. This causes a slowdown.
> - Updating the depot_tools directory can only be done from a CMD
> window, not Cygwin.
>
> I'd also like to be able to work on another branch while the first is
> building. I guess the way to do that is have multiple copies of
> Visual Studio open to projects in different directories. Does that
> mean I should have a different directory for each branch? If so, what
> is the advantage of using git?
>
> Thanks in advance,
>
> Andy
>
> --
> Chromium Developers mailing list: chromi...@chromium.org
> View archives, change email options, or unsubscribe:
> http://groups.google.com/a/chromium.org/group/chromium-dev
>
Yes. My configuration is similar to Sam's, it sounds like.
>
> If so:
>
> - What is your workflow like?
I do most of my work on a Mac, so this may or may not be helpful.
> - How well does it work for you? Are you ever stalled?
Having 4+ x 3 machines checkouts requires a lot of compiling, so, yes ...
> - How are you set up? Specifically,
> - Source code: Do you have multiple directories checked out, and
> switch between them? What are the gotchas? How do you sync between
> them?
Typically I have things set up so that I pull from chromium.org (and
webkit.org) onto my Mac, and then on my win and linux boxes I pull
from my mac. I usually have dual chrome/webkit checkouts, and I use
git-new-workdir to have one full checkout per branch, with usually
four checkouts total (tip of tree webkit, tip of tree chrome, and a
webkit working branch and a chrome working branch).
I try to be careful to never check out the same branch in multiple
checkouts, because that will cause horrible things to happen.
> - Git: Do branches that track other branches?
I have just started playing around with tracking branches, so I can't
really give any feedback here.
> - Visual Studio: Do you have multiple copies running at once? Do
> you use Visual Assist X, or any other Add-Ins?
No. I actually do most of my editing in Vim, but that's because most
of my work these days is in Python. I don't use any add-ins.
> - Etc.
> - What problems do you run into using Cygwin, git and Windows
> (especially 7)?
cygwin is definitely slower than native windows.
>
> Here are some of the issues I run into (I'm using Windows 7):
>
> - I basically only have one checkout directory that I normally use.
> - If I don't unload the project in Visual Studio, sometimes git fails
> when I try to switch branches. This causes a slowdown.
This can be an issue, and of course visual studio will want to reload
the solutions anyway, which is annoying.
> - Updating the depot_tools directory can only be done from a CMD
> window, not Cygwin.
>
Haven't had this problem, but my depot_tools directory has so far
always been a straight svn checkout (not using git for it).
> I'd also like to be able to work on another branch while the first is
> building. I guess the way to do that is have multiple copies of
> Visual Studio open to projects in different directories. Does that
> mean I should have a different directory for each branch? If so, what
> is the advantage of using git?
>
As above, you definitely need should not have the same branch in two
directories if you try to use git new-work-dir. Git new-work-dir will
keep a single repository for the machine though. The main advantages
of using git remain: merging is really really easy, and you can do
local commits.
-- Dirk
In the real world, one flow used to collaborate between developers is
for each developer to have private and public git repos. You pull
from the other developer's public repo to your private repo, and push
from your private repo to your public repo. This works alright for
me, changes loop around with conflicts always handled as part of a
pull (since the push is a mirror, it always works). I usually do
prefetches from the main chromium repo so that I don't have to pull a
few weeks of changes down my DSL link and then push them back up to
some other repo.
-scott
Is anyone else using the combination of Visual Studio, git and Cygwin
to work on Chrome?
Out of curiosity, have you tried running builds from the command line?
It would not hurt my feelings -- no, it would *please* me -- if you
replaced my text with anything more helpful.
I do builds from the command line (invoking devenv from cygwin), but
never multiple at once.
-- Dirk