Julian Phillips <julian@xxxxxxxxxxxxxxxxx> writes: > Add a simple script to create a working directory that uses symlinks > to point at an exisiting repository. This allows having different > branches in different working directories but all from the same > repository. A poor-man's .gitlink if you will. I would not call it poor-man's. It is 'without complexity' and that is a good thing, especially when you are not doing any submodule stuff. > +# create the links to the original repo > +for x in config refs logs/refs objects info hooks packed-refs remotes rr-cache > +do > + case ${x} in > + */*) > + mkdir -p $(dirname ${new_workdir}/.git/${x}); > + ;; > + esac > + ln -s ${orig_git}/.git/${x} ${new_workdir}/.git/${x}; > +done I think the above list "for x" is correct, but probably the code wants to comment on why it specifically excludes logs/HEAD from the symlinked set ;-). > +# now setup the workdir > +cd ${new_workdir}; > +# create a fake HEAD, to stop checkout complaining > +echo "ref: refs/heads/master" > .git/HEAD; > +# now checkout the branch that was asked for > +git checkout ${branch}; If ${branch} was 'master', does this do a checkout? I think -f might be needed. - To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html