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

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

From
Junio C Hamano <junkio@cox.net>
Date
Mar 27, 2007, 05:59 UTC
Message-ID
<7vabxzrzur.fsf@assigned-by-dhcp.cox.net>
In-Reply-To
<20070327003033.4226.8413.julian@quantumfyre.co.uk>
Julian Phillips <julian@quantumfyre.co.uk> writes:
Show 7 quoted lines
> diff --git a/contrib/workdir/git-new-workdir b/contrib/workdir/git-new-workdir
> new file mode 100755
> index 0000000..5bfd87e
> --- /dev/null
> +++ b/contrib/workdir/git-new-workdir
> @@ -0,0 +1,55 @@
> +#!/bin/bash

I do not see anything bash specific you need to do in your script.

Show 10 quoted lines
> +
> +function usage () {
> +	echo "usage:" $1;
> +	exit 127;
> +}
> +
> +function die () {
> +	echo $1;
> +	exit 128;
> +}

Do not add noiseword "function" in our shell scripts, please. This is the only thing POSIX says "produces unspecified results" I found in your script, so if you lose them you shouldn't have to say "#!/bin/bash".

Show 5 quoted lines
> +test $# -eq 3 || usage "$0 <original> <new_workdir> <branch>";
> +
> +orig_git=$1;
> +new_workdir=$2;
> +branch=$3;
Perhaps default branch to whatever original's HEAD points at?
Show 9 quoted lines
> +
> +# want to make sure that what is pointed to has a .git directory ...
> +test -d ${orig_git}/.git || die "${original_git} is not a git repository!";
> +
> +# don't link to a workdir, link to the original repo the workdir is linked to
> +if test -L ${orig_git}/.git/config
> +then
> +	orig_git=$(dirname $(dirname $(readlink -f gm/.git/config)));
> +fi

"gm"? I think it is not worth doing this, as readlink is not all that portable. Just see if it is a symlink and error out.

Dq all pathname values you get from the user, like "$orig_git". They may have SP in them.

Do you need all those braces around shell variable names?
> +# vim: tabstop=8
> +# vim: noexpandtab
Lose these two lines, please.
Previous: Eric LeshNext: Julian Phillips
Message 8 of 9 in “contrib/workdir: add a simple script to create a working directory”
  1. contrib/workdir: add a simple script to create a working directoryJulian Phillips, Mar 26, 2007
  2. Junio C HamanoMar 26, 2007
  3. contrib/workdir: add a simple script to create a working directoryJulian Phillips, Mar 26, 2007
  4. Eric LeshMar 27, 2007
  5. Junio C HamanoMar 27, 2007
  6. Julian PhillipsMar 27, 2007
  7. Eric LeshMar 27, 2007
  8. Junio C HamanoMar 27, 2007
  9. contrib/workdir: add a simple script to create a working directoryJulian Phillips, Mar 26, 2007

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.