Subject: Re: RFC: checkout/temporary branch switch restoring modification times

From: Justin Frankel <[email-masked]>
Date: Mon, 04 Oct 2010 10:20:52 -0400

Jonathan Nieder wrote:
> Hi,
> 
> Justin Frankel wrote:
> 
>> git cop master
>> ; build
>> git cop some-branch-that-affects-lots-of-files
>> ; edit some things, commit
>> git cop master
>> ; build (fast, nothing changed)
> 
> Interesting.  I guess the intended use is that you only ever build
> on the master branch?
> 

The idea is that you're often building on a particular branch, but want 
to switch to another branch temporarily to either do a quick edit or to 
browse some code.

> Have you ever tried the contrib/workdir/git-new-workdir script?
> I find it fits the use case well for me:
> 
>  git clone $repo
>  cd repo
>  make
>  # oh, shoot! I need to try something out real quick.
>  cd ..
>  git new-workdir repo repo2 origin/master
>  cd repo2
>  git am patch-to-test
>  make
>  # okay, back to what I was doing...
>  cd ../repo
> 
> Maybe it could be helpful for you, too?
> 
> Limitations:
> 
>  - requires a file system with support for symbolic links
>    (I think Pierre Habouzit and Junio discussed changing
>    that);
> 
>  - workdirs share refs.  If you update master in one
>    workdir and another workdir also has master checked
>    out, the new changes will appear as staged changes.
> 
>  - workdirs do not share HEAD.  "git gc" from one
>    workdir can completely trash another if it has a
>    detached HEAD pointing to a commit that is not part
>    of any local or remote branch.

Ahh, that would be great.  Unfortunately my filesystem often doesn't 
support symlinks...

-Justin