Re: [PATCH] contrib/workdir: add a simple script to create a working directory

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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

[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]