Git development
 help / color / mirror / Atom feed
* Re: [PATCH] Docs: git checkout --orphan: `root commit' and `branch head'
From: Michael Witten @ 2011-09-28 15:06 UTC (permalink / raw)
  To: Matthieu Moy
  Cc: Junio C Hamano, Jeff King, Philip Oakley, Eric Raible,
	Michael J Gruber, Carlos Martín Nieto, vra5107, git
In-Reply-To: <vpq39fglo8y.fsf@bauges.imag.fr>

On Wed, Sep 28, 2011 at 14:45, Matthieu Moy
<Matthieu.Moy@grenoble-inp.fr> wrote:
> Michael Witten <mfwitten@gmail.com> writes:
>
>>> Even if you use it normally:
>>>
>>> # I want to create a new root commit with a different tree
>>> git checkout -b new-project
>>> # hack for a while
>>> git status
>>> # ?!? why are files shown as 'deleted', 'moved', 'modified', I said I
>>> # was creating a new project!
>>>
>>> Also, with your proposal, we would need to add two flags to "commit"
>>> (--no-parent and --force), which is one of the first command beginners
>>> learn, while in the current state we have just one for "checkout" to do
>>> the trick, and newbies do not use or read the doc for checkout, so it's
>>> not scary for them.
>>
>> Well, those are mildly interesting scenarios. I can only say that I don't
>> think we should cater to people who either have amnesia or work casually
>> on a repository for short bursts every few months or so.
>
> How is the "git status" issue above linked to any kind of amnesia?
>
> When hacking to create a rootless commit, it seems legitimate to me to
> run "git status", and it seems _very_ confusing that "git status" still
> refers to the commit you don't want as parent.

I think "confusing" is perhaps the wrong word. How about "annoying"?

I suppose it is true that neither "--orphan" nor "--no-parent" is good
enough alone. For instance:

  # I want to create a new root commit with a slightly different tree
  git checkout --orphan new-project
  # hack just a bit here and there
  git status
  # ?!? My slight alterations are obscured by hundreds of these
  #     "new file" status notifications!

> (I don't get the relation between your reply and the paragraph right
> above it either)

Is that a passive aggressive French way to state that I didn't respond
to your concern?

I think it's moot now, anyway, given that both "--orphan" and
"--no-parent" quite possibly have their logical purposes. However,
perhaps:

  git checkout --orphan

should be renamed:

  git checkout --no-parent

in order to match:

  git commit --no-parent

^ permalink raw reply

* Re: git-rebase skips automatically no more needed commits
From: Martin von Zweigbergk @ 2011-09-28 14:49 UTC (permalink / raw)
  To: Thomas Rast
  Cc: Ramkumar Ramachandra, Junio C Hamano, Francis Moreau,
	Michael J Gruber, git
In-Reply-To: <201109261110.59940.trast@student.ethz.ch>

On Mon, Sep 26, 2011 at 5:10 AM, Thomas Rast <trast@student.ethz.ch> wrote:
> Martin von Zweigbergk wrote:
>>
>> If I understand correctly, [rebase --root] was introduced to solve
>> exactly the same reason problem that made Francis start this thread
>> -- to avoid re-applying patches that are already in $onto.
>
> Not quite; I wrote it because at the time, there was no way to
> transplant git history onto a git-svn "make empty subdir" commit for
> later dcommitting.  So the main point was really

But that was only due to the bug/limitation in format-patch that you
(?) fixed a few days later, no?

> I still think it would be natural for a user to want a way to say "all
> the way back to the root commit".  At least for me the "full" rebase
> invocation is
>
>  git rebase --onto onto base branch

Sure, I can understand that. Still,  it would just be an alternative
syntax and nothing else. So I think I should also update the
documentation after my other patches to make it clear that that is the
case. We also have to think about backwards compatibility, so I'm
obviously not suggesting that we should stop supporting the flag; I
just wanted to make sure that it is not technically needed.

>> I saw that
>> "--root" is also passed to the hook. Should that value be passed to
>> the hook also when the old base is not explicitly a root (by "rebase
>> --root"), but only implicitly so (by an $onto that is disjoint from
>> $branch)?
>
> I think I did it that way because if you use --root, the base/upstream
> argument is missing, and the hook needs to know that.
>
> If the user specifies an upstream that is disjoint from the branch
> itself, the hook gets the upstream argument and can presumably work it
> out from there.  So you could perhaps save the hook some trouble if
> you *know* that it's a disjoint rebase, but I wouldn't spend too much
> time on that.

The hook would still have to be able to handle both cases (i.e.
getting the upstream argument as "--root" or simply a commit that
happens to be disjoint from the the branch-to-be-rebased). I believe
that has been the case since that bug in format-patch was fixed. So if
we were to change git-rebase so it no longer passes the --root flag to
the hook, I think any (correctly written) hooks should still work. I
don't see much reason to change it, though; if the user uses the
--root syntax, we can pass the flag, otherwise we don't.

Martin

^ permalink raw reply

* Re: [PATCH] git-send-email.perl: expand filename of aliasesfile
From: Matthieu Moy @ 2011-09-28 14:47 UTC (permalink / raw)
  To: git; +Cc: Junio C Hamano, Eric Wong
In-Reply-To: <20110928144057.GC12586@laptop>

Cord Seele <cowose@googlemail.com> writes:

> On Wed 28 Sep 2011 15:42:01 +0200, Matthieu Moy <Matthieu.Moy@grenoble-inp.fr> wrote:
>> That'd be cleaner to use
>> 
>> git config --path sendemail.aliasesfile
>> 
>> to let Git do the right expansion, in a way consistant with other places
>> of Git.
>
> This means to expand it at 'git config' time?

Yes, but not the "git config" ran to set the value. The one ran
internally by "git send-email" through Git::config(). You may add --get
to my command line above.

> Wouldn't it be nicer to have it expanded when you run 'git
> send-email'? Then you could move your ~/.gitconfig (that's where I
> have my aliasesfile configured) between different accounts and it
> could still work.

That works with my proposal.

-- 
Matthieu Moy
http://www-verimag.imag.fr/~moy/

^ permalink raw reply

* Re: [PATCH] Docs: git checkout --orphan: `root commit' and `branch head'
From: Matthieu Moy @ 2011-09-28 14:45 UTC (permalink / raw)
  To: Michael Witten
  Cc: Junio C Hamano, Jeff King, Philip Oakley, Eric Raible,
	Michael J Gruber, Carlos Martín Nieto, vra5107, git
In-Reply-To: <CAMOZ1Btw7Bf3_ejZef_SdRojyVeM94knyz9Gw+SEqFtrrpBVsA@mail.gmail.com>

Michael Witten <mfwitten@gmail.com> writes:

>> Even if you use it normally:
>>
>> # I want to create a new root commit with a different tree
>> git checkout -b new-project
>> # hack for a while
>> git status
>> # ?!? why are files shown as 'deleted', 'moved', 'modified', I said I
>> # was creating a new project!
>>
>> Also, with your proposal, we would need to add two flags to "commit"
>> (--no-parent and --force), which is one of the first command beginners
>> learn, while in the current state we have just one for "checkout" to do
>> the trick, and newbies do not use or read the doc for checkout, so it's
>> not scary for them.
>
> Well, those are mildly interesting scenarios. I can only say that I don't
> think we should cater to people who either have amnesia or work casually
> on a repository for short bursts every few months or so.

How is the "git status" issue above linked to any kind of amnesia?

When hacking to create a rootless commit, it seems legitimate to me to
run "git status", and it seems _very_ confusing that "git status" still
refers to the commit you don't want as parent.

(I don't get the relation between your reply and the paragraph right
above it either)

-- 
Matthieu Moy
http://www-verimag.imag.fr/~moy/

^ permalink raw reply

* error: addinfo_cache failed during merge
From: Stephen Bash @ 2011-09-28 14:44 UTC (permalink / raw)
  To: git discussion list
In-Reply-To: <8172019.33448.1317219409234.JavaMail.root@mail.hq.genarts.com>

Hi all-

I'm in the process of implementing whitespace and EOL normalization for our repo.  Having completed the work on our oldest maintenance branch, I'm attempting to merge the changes recursively into newer branches.

My approach is to merge using '-s recursive -X ours --no-commit' since the only conflicts are whitespace/EOL changes and I have to renormalize the current branch before committing anyway (new files, etc.).  Unfortunately, during the merge, I got a bunch of errors like this:

error: addinfo_cache failed for path 'foo/bar.h'

So first, is this important?  Second, can that message be replaced with something more helpful?  I'm not exactly a newbie, and I certainly can't grok that message...

Doing a bit of archeology, pickaxe shows it arose in 0424138 "Fix bogus error message from merge-recursive error path", but that was Junio cleaning up the message a bit.  The original message is from the creation of merge-recursive.c in 6d297f8 "Status update on merge-recursive in C".  I should caveat that my local git/git is a little out of date because I haven't repointed it since k.org went down (I use it very rarely), so there might be something newer in this area.

Thanks,
Stephen

^ permalink raw reply

* Re: [PATCH] git-send-email.perl: expand filename of aliasesfile
From: Cord Seele @ 2011-09-28 14:40 UTC (permalink / raw)
  To: Matthieu Moy; +Cc: git, Junio C Hamano, Eric Wong
In-Reply-To: <vpqwrcspyvq.fsf@bauges.imag.fr>

On Wed 28 Sep 2011 15:42:01 +0200, Matthieu Moy <Matthieu.Moy@grenoble-inp.fr> wrote:

> Cord Seele <cowose@googlemail.com> writes:
> 
> > -		open my $fh, '<', $file or die "opening $file: $!\n";
> > +		open my $fh, '<', glob($file) or die "opening $file: $!\n";
> 
> That'd be cleaner to use
> 
> git config --path sendemail.aliasesfile
> 
> to let Git do the right expansion, in a way consistant with other places
> of Git.

This means to expand it at 'git config' time? Wouldn't it be nicer to
have it expanded when you run 'git send-email'? Then you could move your
~/.gitconfig (that's where I have my aliasesfile configured) between different
accounts and it could still work.

-- Cord

^ permalink raw reply

* Re: [PATCH] Docs: git checkout --orphan: `root commit' and `branch head'
From: Michael Witten @ 2011-09-28 14:35 UTC (permalink / raw)
  To: Matthieu Moy
  Cc: Junio C Hamano, Jeff King, Philip Oakley, Eric Raible,
	Michael J Gruber, Carlos Martín Nieto, vra5107, git
In-Reply-To: <vpq4nzwoj1o.fsf@bauges.imag.fr>

On Wed, Sep 28, 2011 at 14:09, Matthieu Moy
<Matthieu.Moy@grenoble-inp.fr> wrote:

> Michael Witten <mfwitten@gmail.com> writes:
>
>> Well, as Junio mentioned, "--orphan" could be deprecated in favor of
>> "--no-parent"; the uncommon nature of this task works to our
>> advantage, in that it makes a deprecation of "--orphan" easy.
>
> I agree that _some_ cases would be more natural with commit --no-parent,
> but I disagree that it is a better solution in general.
>
> For example
>
> # I want to create a new root commit with a different tree
> git rm -fr *
> vi file-in-new-project.txt
> git add file-in-new-project.txt
> # continue hacking for a while
> git commit -m "New project" # oops, I forgot the --no-parent
>
> History is not destroyed and you can still "git reset" back to the
> previous commit, but you've at least temporarily damaged your branch
> (and no --force flag could have prevented it). With "git checkout
> --orphan" in the above scenario, you run the command at the time you
> take the decision you want to create a root commit, and then hack
> normally.
>
> Even if you use it normally:
>
> # I want to create a new root commit with a different tree
> git checkout -b new-project
> # hack for a while
> git status
> # ?!? why are files shown as 'deleted', 'moved', 'modified', I said I
> # was creating a new project!
>
> Also, with your proposal, we would need to add two flags to "commit"
> (--no-parent and --force), which is one of the first command beginners
> learn, while in the current state we have just one for "checkout" to do
> the trick, and newbies do not use or read the doc for checkout, so it's
> not scary for them.

Well, those are mildly interesting scenarios. I can only say that I don't
think we should cater to people who either have amnesia or work casually
on a repository for short bursts every few months or so.

^ permalink raw reply

* [GUILT 5/6] Allow guilt scripts to be run from a directory which contains spaces
From: Alan Jenkins @ 2011-09-28 14:15 UTC (permalink / raw)
  To: jeffpc; +Cc: git, Alan Jenkins
In-Reply-To: <1317219324-10319-1-git-send-email-alan.christopher.jenkins@googlemail.com>

`dirname $0` breaks if $0 includes spaces.

I don't need this; it was the result of a mis-understanding.
But here it is anyway; take it if you think it's useful.

Signed-off-by: Alan Jenkins <alan.christopher.jenkins@googlemail.com>
---
 guilt               |   22 +++++++++++++---------
 guilt-add           |    2 +-
 guilt-applied       |    2 +-
 guilt-branch        |    2 +-
 guilt-commit        |    2 +-
 guilt-delete        |    2 +-
 guilt-diff          |    2 +-
 guilt-export        |    2 +-
 guilt-files         |    2 +-
 guilt-fold          |    2 +-
 guilt-fork          |    2 +-
 guilt-graph         |    2 +-
 guilt-guard         |    2 +-
 guilt-header        |    2 +-
 guilt-help          |    2 +-
 guilt-import        |    2 +-
 guilt-import-commit |    2 +-
 guilt-init          |    2 +-
 guilt-new           |    2 +-
 guilt-next          |    2 +-
 guilt-patchbomb     |    2 +-
 guilt-pop           |    2 +-
 guilt-prev          |    2 +-
 guilt-push          |    2 +-
 guilt-rebase        |    2 +-
 guilt-refresh       |    2 +-
 guilt-repair        |    2 +-
 guilt-rm            |    2 +-
 guilt-select        |    2 +-
 guilt-series        |    2 +-
 guilt-status        |    2 +-
 guilt-top           |    2 +-
 guilt-unapplied     |    2 +-
 33 files changed, 45 insertions(+), 41 deletions(-)

diff --git a/guilt b/guilt
index 9f06b41..45bdb66 100755
--- a/guilt
+++ b/guilt
@@ -6,12 +6,14 @@
 GUILT_VERSION="0.35"
 GUILT_NAME="Gloria"
 
+GUILT="$(basename "$0")"
+
 # If the first argument is one of the below, display the man page instead of
 # the rather silly and mostly useless usage string
 case $1 in
 	-h|--h|--he|--hel|--help)
 	shift
-	exec "guilt help" "`basename $0`"
+	exec "guilt help" "$GUILT"
 	exit
 	;;
 	-V|--ver|--versi|--versio|--version)
@@ -69,10 +71,12 @@ silent()
 
 ########
 
+GUILT_PATH="$(dirname "$0")"
+
 guilt_commands()
 {
-	find "`dirname $0`/../lib/guilt" -maxdepth 1 -name "guilt-*" -type f -perm +111 2> /dev/null | sed -e "s/.*\\/`basename $0`-//"
-	find "`dirname $0`" -maxdepth 1 -name "guilt-*" -type f -perm +111 | sed -e "s/.*\\/`basename $0`-//"
+	find "$GUILT_PATH/../lib/guilt" -maxdepth 1 -name "guilt-*" -type f -perm +111 2> /dev/null | sed -e "s/.*\\/$GUILT-//"
+	find "$GUILT_PATH" -maxdepth 1 -name "guilt-*" -type f -perm +111 | sed -e "s/.*\\/$GUILT-//"
 }
 
 # by default, we shouldn't fail
@@ -82,8 +86,8 @@ if [ $# -ne 0 ]; then
 	# take first arg, and try to execute it
 
 	arg="$1"
-	dir=`dirname $0`
-	libdir="`dirname $0`/../lib/guilt"
+	dir="$GUILT_PATH"
+	libdir="$GUILT_PATH/../lib/guilt"
 
 	if [ -x "$dir/guilt-$arg" ]; then
 		cmd="$dir/guilt-$arg"
@@ -870,10 +874,10 @@ pager="more"
 
 UNAME_S=`uname -s`
 
-if [ -r "`dirname $0`/os.$UNAME_S" ]; then
-	. "`dirname $0`/os.$UNAME_S"
-elif [ -r "`dirname $0`/../lib/guilt/os.$UNAME_S" ]; then
-	. "`dirname $0`/../lib/guilt/os.$UNAME_S"
+if [ -r "$GUILT_PATH/os.$UNAME_S" ]; then
+	. "$GUILT_PATH/os.$UNAME_S"
+elif [ -r "$GUILT_PATH/../lib/guilt/os.$UNAME_S" ]; then
+	. "$GUILT_PATH/../lib/guilt/os.$UNAME_S"
 else
 	die "Unsupported operating system: $UNAME_S"
 fi
diff --git a/guilt-add b/guilt-add
index 6529949..8a6b5a7 100755
--- a/guilt-add
+++ b/guilt-add
@@ -5,7 +5,7 @@
 
 USAGE="<file>..."
 if [ -z "$GUILT_VERSION" ]; then
-	echo "Invoking `basename $0` directly is no longer supported." >&2
+	echo "Invoking $GUILT directly is no longer supported." >&2
 	exit 1
 fi
 
diff --git a/guilt-applied b/guilt-applied
index a1f684a..a84f1f7 100755
--- a/guilt-applied
+++ b/guilt-applied
@@ -5,7 +5,7 @@
 
 USAGE="[-c]"
 if [ -z "$GUILT_VERSION" ]; then
-	echo "Invoking `basename $0` directly is no longer supported." >&2
+	echo "Invoking $GUILT directly is no longer supported." >&2
 	exit 1
 fi
 
diff --git a/guilt-branch b/guilt-branch
index 909f740..3e88321 100755
--- a/guilt-branch
+++ b/guilt-branch
@@ -5,7 +5,7 @@
 
 USAGE="[<new_name>]"
 if [ -z "$GUILT_VERSION" ]; then
-	echo "Invoking `basename $0` directly is no longer supported." >&2
+	echo "Invoking $GUILT directly is no longer supported." >&2
 	exit 1
 fi
 
diff --git a/guilt-commit b/guilt-commit
index 4228be6..4ef6605 100755
--- a/guilt-commit
+++ b/guilt-commit
@@ -5,7 +5,7 @@
 
 USAGE="-n <num> | -a | --all"
 if [ -z "$GUILT_VERSION" ]; then
-	echo "Invoking `basename $0` directly is no longer supported." >&2
+	echo "Invoking $GUILT directly is no longer supported." >&2
 	exit 1
 fi
 
diff --git a/guilt-delete b/guilt-delete
index 4ab9c94..551e6a4 100755
--- a/guilt-delete
+++ b/guilt-delete
@@ -5,7 +5,7 @@
 
 USAGE="[-f] <patchname>"
 if [ -z "$GUILT_VERSION" ]; then
-	echo "Invoking `basename $0` directly is no longer supported." >&2
+	echo "Invoking $GUILT directly is no longer supported." >&2
 	exit 1
 fi
 
diff --git a/guilt-diff b/guilt-diff
index 0061926..182fa59 100755
--- a/guilt-diff
+++ b/guilt-diff
@@ -5,7 +5,7 @@
 
 USAGE="[-z] [<path>...]"
 if [ -z "$GUILT_VERSION" ]; then
-	echo "Invoking `basename $0` directly is no longer supported." >&2
+	echo "Invoking $GUILT directly is no longer supported." >&2
 	exit 1
 fi
 
diff --git a/guilt-export b/guilt-export
index 8361902..62c1ef6 100755
--- a/guilt-export
+++ b/guilt-export
@@ -5,7 +5,7 @@
 
 USAGE="[<target_dir>]"
 if [ -z "$GUILT_VERSION" ]; then
-	echo "Invoking `basename $0` directly is no longer supported." >&2
+	echo "Invoking $GUILT directly is no longer supported." >&2
 	exit 1
 fi
 
diff --git a/guilt-files b/guilt-files
index f31a94c..aab35d5 100755
--- a/guilt-files
+++ b/guilt-files
@@ -5,7 +5,7 @@
 
 USAGE="[-v] [-a] [-l]"
 if [ -z "$GUILT_VERSION" ]; then
-	echo "Invoking `basename $0` directly is no longer supported." >&2
+	echo "Invoking $GUILT directly is no longer supported." >&2
 	exit 1
 fi
 
diff --git a/guilt-fold b/guilt-fold
index 06fbb7f..07d77a1 100755
--- a/guilt-fold
+++ b/guilt-fold
@@ -5,7 +5,7 @@
 
 USAGE="[-k] <patchname>"
 if [ -z "$GUILT_VERSION" ]; then
-	echo "Invoking `basename $0` directly is no longer supported." >&2
+	echo "Invoking $GUILT directly is no longer supported." >&2
 	exit 1
 fi
 
diff --git a/guilt-fork b/guilt-fork
index 8d58ffd..5677e1b 100755
--- a/guilt-fork
+++ b/guilt-fork
@@ -5,7 +5,7 @@
 
 USAGE="[<new_name>]"
 if [ -z "$GUILT_VERSION" ]; then
-	echo "Invoking `basename $0` directly is no longer supported." >&2
+	echo "Invoking $GUILT directly is no longer supported." >&2
 	exit 1
 fi
 
diff --git a/guilt-graph b/guilt-graph
index 496a831..1c9fade 100755
--- a/guilt-graph
+++ b/guilt-graph
@@ -5,7 +5,7 @@
 
 USAGE="[<patchname>]"
 if [ -z "$GUILT_VERSION" ]; then
-	echo "Invoking `basename $0` directly is no longer supported." >&2
+	echo "Invoking $GUILT directly is no longer supported." >&2
 	exit 1
 fi
 
diff --git a/guilt-guard b/guilt-guard
index 2c12fca..ada7f45 100755
--- a/guilt-guard
+++ b/guilt-guard
@@ -5,7 +5,7 @@
 
 USAGE="[-l | --list | -n | --none | [<patchname>] [(+|-)<guard>...]]"
 if [ -z "$GUILT_VERSION" ]; then
-	echo "Invoking `basename $0` directly is no longer supported." >&2
+	echo "Invoking $GUILT directly is no longer supported." >&2
 	exit 1
 fi
 
diff --git a/guilt-header b/guilt-header
index 9910708..19cfd45 100755
--- a/guilt-header
+++ b/guilt-header
@@ -5,7 +5,7 @@
 
 USAGE="[-eE] [<patchname>]"
 if [ -z "$GUILT_VERSION" ]; then
-	echo "Invoking `basename $0` directly is no longer supported." >&2
+	echo "Invoking $GUILT directly is no longer supported." >&2
 	exit 1
 fi
 
diff --git a/guilt-help b/guilt-help
index e1807a8..001ddfb 100755
--- a/guilt-help
+++ b/guilt-help
@@ -7,7 +7,7 @@ DO_NOT_CHECK_BRANCH_EXISTENCE=1
 
 USAGE="[<command> | <topic>]"
 if [ -z "$GUILT_VERSION" ]; then
-	echo "Invoking `basename $0` directly is no longer supported." >&2
+	echo "Invoking $GUILT directly is no longer supported." >&2
 	exit 1
 fi
 
diff --git a/guilt-import b/guilt-import
index 72ba7c3..041d20a 100755
--- a/guilt-import
+++ b/guilt-import
@@ -5,7 +5,7 @@
 
 USAGE="[-P <patch> ] <patch_file>"
 if [ -z "$GUILT_VERSION" ]; then
-	echo "Invoking `basename $0` directly is no longer supported." >&2
+	echo "Invoking $GUILT directly is no longer supported." >&2
 	exit 1
 fi
 
diff --git a/guilt-import-commit b/guilt-import-commit
index 3045a5f..1784f26 100755
--- a/guilt-import-commit
+++ b/guilt-import-commit
@@ -5,7 +5,7 @@
 
 USAGE="[<hash> | <since>..[<until>] | ..<until>]"
 if [ -z "$GUILT_VERSION" ]; then
-	echo "Invoking `basename $0` directly is no longer supported." >&2
+	echo "Invoking $GUILT directly is no longer supported." >&2
 	exit 1
 fi
 
diff --git a/guilt-init b/guilt-init
index 646e24b..148699c 100755
--- a/guilt-init
+++ b/guilt-init
@@ -7,7 +7,7 @@ DO_NOT_CHECK_BRANCH_EXISTENCE=1
 
 USAGE=""
 if [ -z "$GUILT_VERSION" ]; then
-	echo "Invoking `basename $0` directly is no longer supported." >&2
+	echo "Invoking $GUILT directly is no longer supported." >&2
 	exit 1
 fi
 
diff --git a/guilt-new b/guilt-new
index 402104e..0803063 100755
--- a/guilt-new
+++ b/guilt-new
@@ -5,7 +5,7 @@
 
 USAGE="[-f] [-s] [-e|-m message] <patchname>"
 if [ -z "$GUILT_VERSION" ]; then
-	echo "Invoking `basename $0` directly is no longer supported." >&2
+	echo "Invoking $GUILT directly is no longer supported." >&2
 	exit 1
 fi
 
diff --git a/guilt-next b/guilt-next
index a0941fc..c7263f1 100755
--- a/guilt-next
+++ b/guilt-next
@@ -5,7 +5,7 @@
 
 USAGE="[-p|--path]"
 if [ -z "$GUILT_VERSION" ]; then
-	echo "Invoking `basename $0` directly is no longer supported." >&2
+	echo "Invoking $GUILT directly is no longer supported." >&2
 	exit 1
 fi
 
diff --git a/guilt-patchbomb b/guilt-patchbomb
index b72a706..c61cd1b 100755
--- a/guilt-patchbomb
+++ b/guilt-patchbomb
@@ -7,7 +7,7 @@ DO_NOT_CHECK_BRANCH_EXISTENCE=1
 
 USAGE="[-n] [-s] [--in-reply-to <msgid>] [--git] [--subject-prefix <prefix>] [<hash> | <since>..[<until>] | ..<until>]"
 if [ -z "$GUILT_VERSION" ]; then
-	echo "Invoking `basename $0` directly is no longer supported." >&2
+	echo "Invoking $GUILT directly is no longer supported." >&2
 	exit 1
 fi
 
diff --git a/guilt-pop b/guilt-pop
index df466c7..1e36f00 100755
--- a/guilt-pop
+++ b/guilt-pop
@@ -5,7 +5,7 @@
 
 USAGE="[-f] [-a | --all | -n <num> | <patchname>]"
 if [ -z "$GUILT_VERSION" ]; then
-	echo "Invoking `basename $0` directly is no longer supported." >&2
+	echo "Invoking $GUILT directly is no longer supported." >&2
 	exit 1
 fi
 
diff --git a/guilt-prev b/guilt-prev
index d454030..31c054c 100755
--- a/guilt-prev
+++ b/guilt-prev
@@ -5,7 +5,7 @@
 
 USAGE="[-p|--path]"
 if [ -z "$GUILT_VERSION" ]; then
-	echo "Invoking `basename $0` directly is no longer supported." >&2
+	echo "Invoking $GUILT directly is no longer supported." >&2
 	exit 1
 fi
 
diff --git a/guilt-push b/guilt-push
index d9a8590..4a54d07 100755
--- a/guilt-push
+++ b/guilt-push
@@ -5,7 +5,7 @@
 
 USAGE="[ -f ] [-a | --all | -n <num> | <patchname>]"
 if [ -z "$GUILT_VERSION" ]; then
-	echo "Invoking `basename $0` directly is no longer supported." >&2
+	echo "Invoking $GUILT directly is no longer supported." >&2
 	exit 1
 fi
 
diff --git a/guilt-rebase b/guilt-rebase
index 614ba22..c33022f 100755
--- a/guilt-rebase
+++ b/guilt-rebase
@@ -7,7 +7,7 @@
 
 USAGE="<upstream>"
 if [ -z "$GUILT_VERSION" ]; then
-	echo "Invoking `basename $0` directly is no longer supported." >&2
+	echo "Invoking $GUILT directly is no longer supported." >&2
 	exit 1
 fi
 
diff --git a/guilt-refresh b/guilt-refresh
index f764937..4e22929 100755
--- a/guilt-refresh
+++ b/guilt-refresh
@@ -5,7 +5,7 @@
 
 USAGE="[--git] [--diffstat]"
 if [ -z "$GUILT_VERSION" ]; then
-	echo "Invoking `basename $0` directly is no longer supported." >&2
+	echo "Invoking $GUILT directly is no longer supported." >&2
 	exit 1
 fi
 
diff --git a/guilt-repair b/guilt-repair
index 77ad223..99df731 100755
--- a/guilt-repair
+++ b/guilt-repair
@@ -7,7 +7,7 @@ DO_NOT_CHECK_STATUS_FILE_FORMAT=1
 
 USAGE="--full | --status"
 if [ -z "$GUILT_VERSION" ]; then
-	echo "Invoking `basename $0` directly is no longer supported." >&2
+	echo "Invoking $GUILT directly is no longer supported." >&2
 	exit 1
 fi
 
diff --git a/guilt-rm b/guilt-rm
index 351ec93..d68622b 100755
--- a/guilt-rm
+++ b/guilt-rm
@@ -5,7 +5,7 @@
 
 USAGE="<file>..."
 if [ -z "$GUILT_VERSION" ]; then
-	echo "Invoking `basename $0` directly is no longer supported." >&2
+	echo "Invoking $GUILT directly is no longer supported." >&2
 	exit 1
 fi
 
diff --git a/guilt-select b/guilt-select
index 8b139d4..fb7941b 100755
--- a/guilt-select
+++ b/guilt-select
@@ -5,7 +5,7 @@
 
 USAGE="[ -n | --none | -s | --series | [--pop|--reapply] <guards...> ]"
 if [ -z "$GUILT_VERSION" ]; then
-	echo "Invoking `basename $0` directly is no longer supported." >&2
+	echo "Invoking $GUILT directly is no longer supported." >&2
 	exit 1
 fi
 
diff --git a/guilt-series b/guilt-series
index c87b31e..f8cd7c7 100755
--- a/guilt-series
+++ b/guilt-series
@@ -5,7 +5,7 @@
 
 USAGE="[-v | -g | -e]"
 if [ -z "$GUILT_VERSION" ]; then
-	echo "Invoking `basename $0` directly is no longer supported." >&2
+	echo "Invoking $GUILT directly is no longer supported." >&2
 	exit 1
 fi
 
diff --git a/guilt-status b/guilt-status
index c701fd1..b4cd1eb 100755
--- a/guilt-status
+++ b/guilt-status
@@ -5,7 +5,7 @@
 
 USAGE="[-a|-A] [-c|-C] [-d|-D] [-m|-M] [-r|-R] [-t|-T] [-u|-U] [-x|-X] [-n]"
 if [ -z "$GUILT_VERSION" ]; then
-	echo "Invoking `basename $0` directly is no longer supported." >&2
+	echo "Invoking $GUILT directly is no longer supported." >&2
 	exit 1
 fi
 
diff --git a/guilt-top b/guilt-top
index 3b1d596..6215009 100755
--- a/guilt-top
+++ b/guilt-top
@@ -5,7 +5,7 @@
 
 USAGE="[-p|--path]"
 if [ -z "$GUILT_VERSION" ]; then
-	echo "Invoking `basename $0` directly is no longer supported." >&2
+	echo "Invoking $GUILT directly is no longer supported." >&2
 	exit 1
 fi
 
diff --git a/guilt-unapplied b/guilt-unapplied
index e703408..9aec87a 100755
--- a/guilt-unapplied
+++ b/guilt-unapplied
@@ -5,7 +5,7 @@
 
 USAGE=""
 if [ -z "$GUILT_VERSION" ]; then
-	echo "Invoking `basename $0` directly is no longer supported." >&2
+	echo "Invoking $GUILT directly is no longer supported." >&2
 	exit 1
 fi
 
-- 
1.7.4.1

^ permalink raw reply related

* [GUILT 4/6] Run regression tests in a directory which contains spaces
From: Alan Jenkins @ 2011-09-28 14:15 UTC (permalink / raw)
  To: jeffpc; +Cc: git, Alan Jenkins
In-Reply-To: <1317219324-10319-1-git-send-email-alan.christopher.jenkins@googlemail.com>

This helped me in finding some of the issues in the previous patch.

Signed-off-by: Alan Jenkins <alan.christopher.jenkins@googlemail.com>
---
 regression/run-tests |   17 ++++++++++-------
 1 files changed, 10 insertions(+), 7 deletions(-)

diff --git a/regression/run-tests b/regression/run-tests
index 4cb3eb4..a10e796 100755
--- a/regression/run-tests
+++ b/regression/run-tests
@@ -9,9 +9,9 @@ source scaffold
 # usage: empty_repo
 function empty_repo
 {
-	rm -rf $REPODIR
-	mkdir $REPODIR
-	cd $REPODIR > /dev/null
+	rm -rf "$REPODIR"
+	mkdir "$REPODIR"
+	cd "$REPODIR" > /dev/null
 	git init 2> /dev/null > /dev/null
 	cd - > /dev/null
 }
@@ -22,8 +22,9 @@ function test_failed
 Test failed!
 
 Test:		$TESTNAME
-Repo dir:	$REPODIR
 Log file:	$LOGFILE
+Repo dir:	"$REPODIR"
+
 DONE
 	exit 1
 }
@@ -42,7 +43,9 @@ function check_test
 # usage: run_test <test number>
 function run_test
 {
-	export REPODIR="/tmp/guilt.reg.$RANDOM"
+	# We make sure we can handle space characters
+	# by including one in REPODIR.
+	export REPODIR="/tmp/guilt reg.$RANDOM"
 	export LOGFILE="/tmp/guilt.log.$RANDOM"
 	export TESTNAME="$1"
 
@@ -51,7 +54,7 @@ function run_test
 	empty_repo
 
 	# run the test
-	cd $REPODIR > /dev/null
+	cd "$REPODIR" > /dev/null
 	"$REG_DIR/t-$1.sh" 2>&1 > "$LOGFILE"
 	ERR=$?
 	cd - > /dev/null
@@ -61,7 +64,7 @@ function run_test
 
 	echo "done."
 
-	rm -rf $REPODIR $LOGFILE
+	rm -rf "$REPODIR" "$LOGFILE"
 }
 
 case "$1" in
-- 
1.7.4.1

^ permalink raw reply related

* [GUILT 6/6] Allow the regression tests to be run from a directory with spaces in
From: Alan Jenkins @ 2011-09-28 14:15 UTC (permalink / raw)
  To: jeffpc; +Cc: git, Alan Jenkins
In-Reply-To: <1317219324-10319-1-git-send-email-alan.christopher.jenkins@googlemail.com>

sed -i regression/*.sh 's|source $REG_DIR/scaffold|source "$REG_DIR/scaffold"|'

Same as the previous patch: it turned out I don't need this,
but you might think it's a good idea anyway.

Signed-off-by: Alan Jenkins <alan.christopher.jenkins@googlemail.com>
---
 regression/t-010.sh |    2 +-
 regression/t-011.sh |    2 +-
 regression/t-020.sh |    2 +-
 regression/t-021.sh |    2 +-
 regression/t-022.sh |    2 +-
 regression/t-023.sh |    2 +-
 regression/t-024.sh |    2 +-
 regression/t-025.sh |    2 +-
 regression/t-026.sh |    2 +-
 regression/t-027.sh |    2 +-
 regression/t-028.sh |    2 +-
 regression/t-029.sh |    2 +-
 regression/t-030.sh |    2 +-
 regression/t-031.sh |    2 +-
 regression/t-032.sh |    2 +-
 regression/t-050.sh |    2 +-
 regression/t-051.sh |    2 +-
 regression/t-052.sh |    2 +-
 regression/t-060.sh |    2 +-
 19 files changed, 19 insertions(+), 19 deletions(-)

diff --git a/regression/t-010.sh b/regression/t-010.sh
index 1fc88fa..9bbf32a 100755
--- a/regression/t-010.sh
+++ b/regression/t-010.sh
@@ -3,7 +3,7 @@
 # Test the init code
 #
 
-source $REG_DIR/scaffold
+source "$REG_DIR/scaffold"
 
 function opts
 {
diff --git a/regression/t-011.sh b/regression/t-011.sh
index fde7b90..55a72d7 100755
--- a/regression/t-011.sh
+++ b/regression/t-011.sh
@@ -4,7 +4,7 @@
 # not guilt init'ed
 #
 
-source $REG_DIR/scaffold
+source "$REG_DIR/scaffold"
 
 cmd setup_git_repo
 
diff --git a/regression/t-020.sh b/regression/t-020.sh
index 6598b02..cdd08ba 100755
--- a/regression/t-020.sh
+++ b/regression/t-020.sh
@@ -3,7 +3,7 @@
 # Test the push code
 #
 
-source $REG_DIR/scaffold
+source "$REG_DIR/scaffold"
 
 cmd setup_repo
 
diff --git a/regression/t-021.sh b/regression/t-021.sh
index 035973c..6337d7b 100755
--- a/regression/t-021.sh
+++ b/regression/t-021.sh
@@ -3,7 +3,7 @@
 # Test the pop code
 #
 
-source $REG_DIR/scaffold
+source "$REG_DIR/scaffold"
 
 cmd setup_repo
 
diff --git a/regression/t-022.sh b/regression/t-022.sh
index e43dc0a..0fe345b 100755
--- a/regression/t-022.sh
+++ b/regression/t-022.sh
@@ -3,7 +3,7 @@
 # Test the applied code
 #
 
-source $REG_DIR/scaffold
+source "$REG_DIR/scaffold"
 
 cmd setup_repo
 
diff --git a/regression/t-023.sh b/regression/t-023.sh
index 1e976fd..c0530d6 100755
--- a/regression/t-023.sh
+++ b/regression/t-023.sh
@@ -3,7 +3,7 @@
 # Test the top code
 #
 
-source $REG_DIR/scaffold
+source "$REG_DIR/scaffold"
 
 cmd setup_repo
 
diff --git a/regression/t-024.sh b/regression/t-024.sh
index 9b11286..38f53aa 100755
--- a/regression/t-024.sh
+++ b/regression/t-024.sh
@@ -3,7 +3,7 @@
 # Test the unapplied code
 #
 
-source $REG_DIR/scaffold
+source "$REG_DIR/scaffold"
 
 cmd setup_repo
 
diff --git a/regression/t-025.sh b/regression/t-025.sh
index 6aa9bd3..3824608 100755
--- a/regression/t-025.sh
+++ b/regression/t-025.sh
@@ -3,7 +3,7 @@
 # Test the new code
 #
 
-source $REG_DIR/scaffold
+source "$REG_DIR/scaffold"
 
 cmd setup_repo
 
diff --git a/regression/t-026.sh b/regression/t-026.sh
index 5f29352..0ccdf85 100755
--- a/regression/t-026.sh
+++ b/regression/t-026.sh
@@ -3,7 +3,7 @@
 # Test the delete code
 #
 
-source $REG_DIR/scaffold
+source "$REG_DIR/scaffold"
 
 cmd setup_repo
 
diff --git a/regression/t-027.sh b/regression/t-027.sh
index ee70229..2f5bb9f 100755
--- a/regression/t-027.sh
+++ b/regression/t-027.sh
@@ -3,7 +3,7 @@
 # Test the refresh code
 #
 
-source $REG_DIR/scaffold
+source "$REG_DIR/scaffold"
 
 cmd setup_repo
 
diff --git a/regression/t-028.sh b/regression/t-028.sh
index 83fa879..8480100 100755
--- a/regression/t-028.sh
+++ b/regression/t-028.sh
@@ -3,7 +3,7 @@
 # Test the header code
 #
 
-source $REG_DIR/scaffold
+source "$REG_DIR/scaffold"
 
 cmd setup_repo
 
diff --git a/regression/t-029.sh b/regression/t-029.sh
index 83e1d2b..e4036bf 100755
--- a/regression/t-029.sh
+++ b/regression/t-029.sh
@@ -5,7 +5,7 @@
 
 # FIXME: test status file format upgrade code
 
-source $REG_DIR/scaffold
+source "$REG_DIR/scaffold"
 
 cmd setup_repo
 
diff --git a/regression/t-030.sh b/regression/t-030.sh
index 0352948..06bd58f 100755
--- a/regression/t-030.sh
+++ b/regression/t-030.sh
@@ -3,7 +3,7 @@
 # Test the commit code
 #
 
-source $REG_DIR/scaffold
+source "$REG_DIR/scaffold"
 
 cmd setup_repo
 
diff --git a/regression/t-031.sh b/regression/t-031.sh
index 9b5db6f..20c2a6b 100755
--- a/regression/t-031.sh
+++ b/regression/t-031.sh
@@ -3,7 +3,7 @@
 # Test the fork code
 #
 
-source $REG_DIR/scaffold
+source "$REG_DIR/scaffold"
 
 cmd setup_repo
 
diff --git a/regression/t-032.sh b/regression/t-032.sh
index 3b32da5..b1d5f19 100755
--- a/regression/t-032.sh
+++ b/regression/t-032.sh
@@ -3,7 +3,7 @@
 # Test the import code
 #
 
-source $REG_DIR/scaffold
+source "$REG_DIR/scaffold"
 
 cmd setup_repo
 
diff --git a/regression/t-050.sh b/regression/t-050.sh
index 82ac412..88be546 100755
--- a/regression/t-050.sh
+++ b/regression/t-050.sh
@@ -3,7 +3,7 @@
 # Test the series code
 #
 
-source $REG_DIR/scaffold
+source "$REG_DIR/scaffold"
 
 cmd setup_repo
 
diff --git a/regression/t-051.sh b/regression/t-051.sh
index a05fcca..293459c 100755
--- a/regression/t-051.sh
+++ b/regression/t-051.sh
@@ -3,7 +3,7 @@
 # Test the commands that use get_*_series, while applying guards
 #
 
-source $REG_DIR/scaffold
+source "$REG_DIR/scaffold"
 
 cmd setup_repo
 
diff --git a/regression/t-052.sh b/regression/t-052.sh
index e9c1a59..f8c60ab 100755
--- a/regression/t-052.sh
+++ b/regression/t-052.sh
@@ -3,7 +3,7 @@
 # Test the commands that use get_*_series, while applying guards
 #
 
-source $REG_DIR/scaffold
+source "$REG_DIR/scaffold"
 
 cmd setup_repo
 
diff --git a/regression/t-060.sh b/regression/t-060.sh
index ec33d80..ebe93bd 100755
--- a/regression/t-060.sh
+++ b/regression/t-060.sh
@@ -3,7 +3,7 @@
 # Test the guilt files code
 #
 
-source $REG_DIR/scaffold
+source "$REG_DIR/scaffold"
 
 cmd setup_repo
 
-- 
1.7.4.1

^ permalink raw reply related

* [GUILT 3/6] Handle paths that contain spaces
From: Alan Jenkins @ 2011-09-28 14:15 UTC (permalink / raw)
  To: jeffpc; +Cc: git, Alan Jenkins
In-Reply-To: <1317219324-10319-1-git-send-email-alan.christopher.jenkins@googlemail.com>


Signed-off-by: Alan Jenkins <alan.christopher.jenkins@googlemail.com>
---
 guilt           |    6 +++---
 guilt-applied   |    4 ++--
 guilt-files     |    4 ++--
 guilt-fold      |    2 +-
 guilt-new       |    2 +-
 guilt-next      |    2 +-
 guilt-pop       |   12 ++++++------
 guilt-push      |    6 +++---
 guilt-series    |    4 ++--
 guilt-unapplied |    2 +-
 10 files changed, 22 insertions(+), 22 deletions(-)

diff --git a/guilt b/guilt
index 5d79e0f..9f06b41 100755
--- a/guilt
+++ b/guilt
@@ -196,7 +196,7 @@ get_full_series()
 
 		p
 		}
-		" $series
+		" "$series"
 }
 
 get_series()
@@ -632,7 +632,7 @@ push_patch()
 
 		commit "$pname" HEAD
 
-		echo "$pname" >> $applied
+		echo "$pname" >> "$applied"
 
 		rm -f "$TMP_LOG"
 	)
@@ -739,7 +739,7 @@ __refresh_patch()
 
 		# move the new patch in
 		mv "$p" "$p~"
-		mv "$TMP_DIFF" $p
+		mv "$TMP_DIFF" "$p"
 
 		# commit
 		commit "$pname" "HEAD~$3"
diff --git a/guilt-applied b/guilt-applied
index ead787b..a1f684a 100755
--- a/guilt-applied
+++ b/guilt-applied
@@ -14,7 +14,7 @@ _main() {
 case $# in
 	0)
 		# just output the regular series-style applied list
-		cat $applied
+		cat "$applied"
 	;;
 
 	1)
@@ -22,7 +22,7 @@ case $# in
 			usage
 		fi
 
-		cat $applied | while read pname; do
+		cat "$applied" | while read pname; do
 			git show-ref refs/patches/$branch/$pname | sed -e "s,refs/patches/$branch/,,"
 		done
 	;;
diff --git a/guilt-files b/guilt-files
index 9188070..f31a94c 100755
--- a/guilt-files
+++ b/guilt-files
@@ -34,9 +34,9 @@ top_patch=`get_top`
 
 IFS=:
 if [ -n "$opt_all" ]; then
-	cat $applied
+	cat "$applied"
 else
-	tail -n 1 $applied
+	tail -n 1 "$applied"
 fi | while read patch; do
 	obj=`git rev-parse refs/patches/$branch/$patch`
 
diff --git a/guilt-fold b/guilt-fold
index 9bf0d6e..06fbb7f 100755
--- a/guilt-fold
+++ b/guilt-fold
@@ -36,7 +36,7 @@ if ! must_commit_first; then
 fi
 
 # make sure it is not applied
-pline=`cat $applied | grep -e "^$patch$"`
+pline=`cat "$applied" | grep -e "^$patch$"`
 if [ ! -z "$pline" ]; then
 	die "Patch is applied. Pop the patch first."
 fi
diff --git a/guilt-new b/guilt-new
index c660dfc..402104e 100755
--- a/guilt-new
+++ b/guilt-new
@@ -95,7 +95,7 @@ fi
 series_insert_patch "$patch"
 
 # apply the patch
-echo "$patch" >> $applied
+echo "$patch" >> "$applied"
 commit "$patch" HEAD
 
 }
diff --git a/guilt-next b/guilt-next
index 5ac026b..a0941fc 100755
--- a/guilt-next
+++ b/guilt-next
@@ -21,7 +21,7 @@ while [ $# -ne 0 ]; do
 	shift
 done
 
-n=`wc -l < $applied`
+n=`wc -l < "$applied"`
 n=$(($n + 1))
 
 p=`get_series | awk "{ if (NR == $n) print \\$0}"`
diff --git a/guilt-pop b/guilt-pop
index 77d2c88..df466c7 100755
--- a/guilt-pop
+++ b/guilt-pop
@@ -55,14 +55,14 @@ if [ ! -s "$applied" ]; then
 elif [ "$patch" = "-a" ]; then
 	# we are supposed to pop all patches
 
-	sidx=`wc -l < $applied`
+	sidx=`wc -l < "$applied"`
 	eidx=0
 elif [ ! -z "$num" ]; then
 	# we are supposed to pop a set number of patches
 
 	[ "$patch" -lt 0 ] && die "Invalid number of patches to pop."
 
-	sidx=`wc -l < $applied`
+	sidx=`wc -l < "$applied"`
 	eidx=`expr $sidx - $patch`
 
 	# catch underflow
@@ -71,19 +71,19 @@ elif [ ! -z "$num" ]; then
 elif [ -z "$patch" ]; then
 	# we are supposed to pop only the current patch on the stack
 
-	sidx=`wc -l < $applied`
+	sidx=`wc -l < "$applied"`
 	eidx=`expr $sidx - 1`
 else
 	# we're supposed to pop only up to a patch, make sure the patch is
 	# in the series
 
-	eidx=`cat $applied | grep -ne "^$patch$" | cut -d: -f 1`
+	eidx=`cat "$applied" | grep -ne "^$patch$" | cut -d: -f 1`
 	if [ -z "$eidx" ]; then
 		die "Patch $patch is not in the series/is not applied"
 	fi
 
 	eidx=`expr $eidx - 1`
-	sidx=`wc -l < $applied`
+	sidx=`wc -l < "$applied"`
 fi
 
 # make sure that there are no unapplied changes
@@ -94,7 +94,7 @@ elif ! must_commit_first; then
 	die "Uncommited changes detected. Refresh first."
 fi
 
-l=`awk "BEGIN{n=0}(n==$eidx){print \\$0; exit}{n=n+1}END{}" < $applied`
+l=`awk "BEGIN{n=0}(n==$eidx){print \\$0; exit}{n=n+1}END{}" < "$applied"`
 
 pop_many_patches `git rev-parse refs/patches/$branch/$l^` `expr $sidx - $eidx`
 
diff --git a/guilt-push b/guilt-push
index 05bcef5..d9a8590 100755
--- a/guilt-push
+++ b/guilt-push
@@ -72,7 +72,7 @@ elif [ ! -z "$num" ]; then
 	eidx=`get_series | wc -l`
 
 	# calculate end index from current
-	tidx=`wc -l < $applied`
+	tidx=`wc -l < "$applied"`
 	tidx=`expr $tidx + $patch`
 
 	# clamp to minimum
@@ -81,7 +81,7 @@ elif [ ! -z "$num" ]; then
 elif [ -z "$patch" ]; then
 	# we are supposed to push only the next patch onto the stack
 
-	eidx=`wc -l < $applied`
+	eidx=`wc -l < "$applied"`
 	eidx=`expr $eidx + 1`
 else
 	# we're supposed to push only up to a patch, make sure the patch is
@@ -99,7 +99,7 @@ if ! must_commit_first; then
 fi
 
 # now, find the starting patch
-sidx=`wc -l < $applied`
+sidx=`wc -l < "$applied"`
 sidx=`expr $sidx + 1`
 
 # do we actually have to push anything?
diff --git a/guilt-series b/guilt-series
index d9b1cc2..c87b31e 100755
--- a/guilt-series
+++ b/guilt-series
@@ -30,8 +30,8 @@ if [ ! -z "$edit" ]; then
 	git_editor "$series"
 elif [ ! -z "$gui" ]; then
 	[ -z "`get_top`" ] && die "No patches applied."
-	bottom=`git rev-parse refs/patches/$branch/$(head_n 1 $applied)`
-	top=`git rev-parse refs/patches/$branch/$(tail -n 1 $applied)`
+	bottom=`git rev-parse refs/patches/$branch/$(head_n 1 "$applied")`
+	top=`git rev-parse refs/patches/$branch/$(tail -n 1 "$applied")`
 	range="$bottom..$top"
 
 	# FIXME, this doesn't quite work - it's perfectly fine with
diff --git a/guilt-unapplied b/guilt-unapplied
index 67ee1aa..e703408 100755
--- a/guilt-unapplied
+++ b/guilt-unapplied
@@ -15,7 +15,7 @@ if [ $# -ne 0 ]; then
 	usage
 fi
 
-n=`wc -l < $applied`
+n=`wc -l < "$applied"`
 n=`expr $n + 1`
 
 get_series | sed -n -e "$n,\$p"
-- 
1.7.4.1

^ permalink raw reply related

* [GUILT 2/6] guilt-header: fix patch corruption
From: Alan Jenkins @ 2011-09-28 14:15 UTC (permalink / raw)
  To: jeffpc; +Cc: git, Alan Jenkins
In-Reply-To: <1317219324-10319-1-git-send-email-alan.christopher.jenkins@googlemail.com>

Hunks containing the string "END{}" were being corrupted.

Signed-off-by: Alan Jenkins <alan.christopher.jenkins@googlemail.com>
---
 guilt |    4 +++-
 1 files changed, 3 insertions(+), 1 deletions(-)

diff --git a/guilt b/guilt
index 51532f9..5d79e0f 100755
--- a/guilt
+++ b/guilt
@@ -341,7 +341,9 @@ do_get_patch()
 {
 	cat "$1" | awk '
 BEGIN{}
-/^(diff |---$|--- )/,/END{}/
+/^(diff |---$|--- )/ {patch = 1}
+patch == 1 {print $0}
+END{}
 '
 }
 
-- 
1.7.4.1

^ permalink raw reply related

* [GUILT 1/6] Refuse to push corrupt patches
From: Alan Jenkins @ 2011-09-28 14:15 UTC (permalink / raw)
  To: jeffpc; +Cc: git, Alan Jenkins

"guilt push" would treat corrupt patches as empty,
because "git apply --numstat" prints nothing on stdout.

(You do get an error message on stderr,
 but then guilt says "Patch applied" etc,
 and I didn't notice the earlier error message
 for quite some time.)

Signed-off-by: Alan Jenkins <alan.christopher.jenkins@googlemail.com>
---
 guilt |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/guilt b/guilt
index d1e17d4..51532f9 100755
--- a/guilt
+++ b/guilt
@@ -611,7 +611,7 @@ push_patch()
 		cd_to_toplevel
 
 		# apply the patch if and only if there is something to apply
-		if [ `git apply --numstat "$p" | wc -l` -gt 0 ]; then
+		if [ `do_get_patch "$p" | wc -l` -gt 0 ]; then
 			if [ "$bail_action" = abort ]; then
 				reject=""
 			fi
-- 
1.7.4.1

^ permalink raw reply related

* Merge seems to overwrite unstaged local changes
From: Sebastian Schuberth @ 2011-09-28 14:08 UTC (permalink / raw)
  To: git

Hi,

although it is good practice to have a clean working tree before pulling / merging, my understanding of

"In particular, the local modifications you had before you started merge will stay the same and the index entries for them stay as they were, i.e. matching HEAD."

from [1] is that my local unstaged changes to a file known to Git should not get lost during a merge (especially if there a no conflicts in the file that's modified locally).

It seems I can reproduce a case where this is not true. Here's what I do:

# Checkout a branch
$ git co -b marianne 45e0d23bf1a6bf62e3317a691385e0f1a7b279ea

$ git status
# On branch marianne
nothing to commit (working directory clean)

$ git log --oneline hxprofile1d/HxComputeProfileAlongAxis.cpp
45e0d23 hxprofile1d: [Fix] errors according to move of files
3509d94 hxprofile1d: moved files from package hxneuralnetwork to hxprofile1d

# Add some stuff to the end of the existing file.
$ vim hxprofile1d/HxComputeProfileAlongAxis.cpp

$ git status
# On branch marianne
# Changes not staged for commit:
#   (use "git add <file>..." to update what will be committed)
#   (use "git checkout -- <file>..." to discard changes in working directory)
#
#       modified:   hxprofile1d/HxComputeProfileAlongAxis.cpp
#
no changes added to commit (use "git add" and/or "git commit -a")

$ git merge 569e443faf5ae773af1c8eedfefa41ebfd066171
Removing cgal/BuildCGAL.sh
Auto-merging hxcortexinsilico/QxCorticalColumnTool.cpp
Auto-merging hxcortexinsilico/QxCorticalColumnTool.h
Removing hxneuralnetwork/QxAddFilesDialog.cpp
Removing hxneuralnetwork/QxAddFilesDialog.h
Removing hxneuralnetwork/QxAddFilesDialogUI.ui
Auto-merging hxneuralnetwork/SelectionPredicateCellTypeIsTest.cpp
Removing hxneuralnetwork/SelectionPredicateHasCellTypeName.cpp
Removing hxneuralnetwork/SelectionPredicateHasCellTypeName.h
Removing hxneuralnetwork/SelectionPredicateHasCellTypeNameTest.h
Auto-merging hxneuralnetwork/share/resources/hxneuralnetwork.rc
Auto-merging hxneuralnetwork/share/resources/test_hxneuralnetwork.rc
Auto-merging hxneuronkernels/HxLandmarksInSurface.h
Auto-merging hxneuronkernels/MeasurementFunctions.h
Merge made by recursive.
 cgal/BuildCGAL.sh                                  |  153 ----
 cgal/BuildCGALforLinux.sh                          |   94 ++
 cgal/Package                                       |   11 +-
 hx2d3drecon/Reg2d3dFunctionalEdgeNormal.cpp        |    5 +-
 .../ConnectEndNodesToSomaOperationSet.cpp          |    0
 .../ConnectEndNodesToSomaOperationSet.h            |    0
 hxcortexinsilico/Package                           |   27 +
 .../QxCorticalColumnTool.cpp                       |    5 +-
 .../QxCorticalColumnTool.h                         |   10 +-
 .../QxCorticalColumnTool.ui                        |    0
 hxcortexinsilico/hxcortexinsilicoAPI.h             |   14 +
 .../share/png/CorticalColumnTool.png               |  Bin 326 -> 326 bytes
 .../share/resources/hxcortexinsilico.rc            |    9 +
 hxcrosscorrelation/CCR.cpp                         |  415 +++++++++
 hxcrosscorrelation/CCR.h                           |  111 +++
 hxcrosscorrelation/CCR_hollowCylinder.cpp          |  209 +++++
 hxcrosscorrelation/CCR_hollowCylinder.h            |   80 ++
 hxcrosscorrelation/CCR_hollowSphere.cpp            |  164 ++++
 hxcrosscorrelation/CCR_hollowSphere.h              |   69 ++
 hxcrosscorrelation/CCR_plane.cpp                   |  196 ++++
 hxcrosscorrelation/CCR_plane.h                     |   77 ++
 hxcrosscorrelation/CCR_rotation.cpp                |  131 +++
 hxcrosscorrelation/CCR_rotation.h                  |   64 ++
 hxcrosscorrelation/CCR_scale.cpp                   |   59 ++
 hxcrosscorrelation/CCR_scale.h                     |   55 ++
 hxcrosscorrelation/CCR_solidCylinder.cpp           |  197 ++++
 hxcrosscorrelation/CCR_solidCylinder.h             |   76 ++
 hxcrosscorrelation/CCR_solidSphere.cpp             |  153 ++++
 hxcrosscorrelation/CCR_solidSphere.h               |   66 ++
 hxcrosscorrelation/CrossCorrelation.cpp            |  442 +++++++++
 hxcrosscorrelation/CrossCorrelation.h              |  103 +++
 hxcrosscorrelation/CrossCorrelation_cuda.cu        |  208 +++++
 hxcrosscorrelation/DataSplitter.cpp                |  339 +++++++
 hxcrosscorrelation/DataSplitter.h                  |   85 ++
 hxcrosscorrelation/HxCCRShow.cpp                   |   79 ++
 hxcrosscorrelation/HxCCRShow.h                     |   50 +
 hxcrosscorrelation/HxCrossCorrelation.cpp          |  316 +++++++
 hxcrosscorrelation/HxCrossCorrelation.h            |   81 ++
 hxcrosscorrelation/HxDataToSpreadsheet.cpp         |  100 ++
 hxcrosscorrelation/HxDataToSpreadsheet.h           |   58 ++
 hxcrosscorrelation/HxHollowCylinderToCCR.cpp       |  199 ++++
 hxcrosscorrelation/HxHollowCylinderToCCR.h         |   61 ++
 hxcrosscorrelation/HxHollowSphereToCCR.cpp         |  148 +++
 hxcrosscorrelation/HxHollowSphereToCCR.h           |   59 ++
 hxcrosscorrelation/HxPlaneToCCR.cpp                |  166 ++++
 hxcrosscorrelation/HxPlaneToCCR.h                  |   60 ++
 .../HxReferenceIndicesToData_scalar.cpp            |   84 ++
 .../HxReferenceIndicesToData_scalar.h              |   49 +
 .../HxReferenceIndicesToData_vector.cpp            |   88 ++
 .../HxReferenceIndicesToData_vector.h              |   50 +
 hxcrosscorrelation/HxSolidCylinderToCCR.cpp        |  194 ++++
 hxcrosscorrelation/HxSolidCylinderToCCR.h          |   61 ++
 hxcrosscorrelation/HxSolidSphereToCCR.cpp          |  143 +++
 hxcrosscorrelation/HxSolidSphereToCCR.h            |   59 ++
 hxcrosscorrelation/Package                         |    7 +
 hxcrosscorrelation/doc/HxCCRShow.doc               |   29 +
 .../doc/HxCCRShow_selectReference.png              |  Bin 0 -> 2071 bytes
 hxcrosscorrelation/doc/HxCrossCorrelation.doc      |   65 ++
 .../doc/HxCrossCorrelation_GPUDevice.png           |  Bin 0 -> 2327 bytes
 .../doc/HxCrossCorrelation_GPUMemory.png           |  Bin 0 -> 1956 bytes
 .../doc/HxCrossCorrelation_blockSize.png           |  Bin 0 -> 2012 bytes
 .../doc/HxCrossCorrelation_nrBlocks.png            |  Bin 0 -> 2149 bytes
 .../doc/HxCrossCorrelation_timerThreshold.png      |  Bin 0 -> 1404 bytes
 hxcrosscorrelation/doc/HxDataToSpreadSheet.doc     |   30 +
 .../doc/HxDataToSpreadSheet_threshold.png          |  Bin 0 -> 1296 bytes
 hxcrosscorrelation/doc/HxHollowCylinderToCCR.doc   |  123 +++
 .../HxHollowCylinderToCCR_cylinderParameter.png    |  Bin 0 -> 4826 bytes
 .../doc/HxHollowCylinderToCCR_defineForeground.png |  Bin 0 -> 4561 bytes
 .../doc/HxHollowCylinderToCCR_defineForground.png  |  Bin 0 -> 1918 bytes
 .../doc/HxHollowCylinderToCCR_increment.png        |  Bin 0 -> 2800 bytes
 .../doc/HxHollowCylinderToCCR_maskParameter.png    |  Bin 0 -> 4708 bytes
 .../doc/HxHollowCylinderToCCR_options.png          |  Bin 0 -> 4923 bytes
 .../doc/HxHollowCylinderToCCR_psiRange.png         |  Bin 0 -> 3649 bytes
 .../doc/HxHollowCylinderToCCR_smoothing.png        |  Bin 0 -> 2483 bytes
 .../doc/HxHollowCylinderToCCR_thetaRange.png       |  Bin 0 -> 3660 bytes
 .../doc/HxHollowCylinderToCCR_tiltAngles.png       |  Bin 0 -> 3577 bytes
 .../doc/HxHollowCylinderToCCR_tiltAxis.png         |  Bin 0 -> 2909 bytes
 .../doc/HxHollowCylinderToCCR_tiltType.png         |  Bin 0 -> 3667 bytes
 .../doc/HxHollowCylinderToCCR_voxelSize.png        |  Bin 0 -> 3218 bytes
 hxcrosscorrelation/doc/HxHollowSphereToCCR.doc     |   94 ++
 .../doc/HxHollowSphereToCCR_defineForground.png    |  Bin 0 -> 1918 bytes
 .../doc/HxHollowSphereToCCR_increment.png          |  Bin 0 -> 1406 bytes
 .../doc/HxHollowSphereToCCR_options.png            |  Bin 0 -> 2335 bytes
 .../doc/HxHollowSphereToCCR_scaleRange.png         |  Bin 0 -> 1773 bytes
 .../doc/HxHollowSphereToCCR_smoothing.png          |  Bin 0 -> 1255 bytes
 .../doc/HxHollowSphereToCCR_sphereParameter.png    |  Bin 0 -> 1977 bytes
 .../doc/HxHollowSphereToCCR_tiltAngles.png         |  Bin 0 -> 1810 bytes
 .../doc/HxHollowSphereToCCR_tiltAxis.png           |  Bin 0 -> 1831 bytes
 .../doc/HxHollowSphereToCCR_tiltType.png           |  Bin 0 -> 2018 bytes
 .../doc/HxHollowSphereToCCR_voxelSize.png          |  Bin 0 -> 1331 bytes
 hxcrosscorrelation/doc/HxPlaneToCCR.doc            |  105 +++
 .../doc/HxPlaneToCCR_defineForground.png           |  Bin 0 -> 1918 bytes
 hxcrosscorrelation/doc/HxPlaneToCCR_increment.png  |  Bin 0 -> 1406 bytes
 hxcrosscorrelation/doc/HxPlaneToCCR_options.png    |  Bin 0 -> 2335 bytes
 .../doc/HxPlaneToCCR_planeParameter.png            |  Bin 0 -> 2574 bytes
 hxcrosscorrelation/doc/HxPlaneToCCR_psiRange.png   |  Bin 0 -> 1728 bytes
 .../doc/HxPlaneToCCR_subdivision.png               |  Bin 0 -> 1255 bytes
 hxcrosscorrelation/doc/HxPlaneToCCR_thetaRange.png |  Bin 0 -> 1748 bytes
 hxcrosscorrelation/doc/HxPlaneToCCR_tiltAngles.png |  Bin 0 -> 1810 bytes
 hxcrosscorrelation/doc/HxPlaneToCCR_tiltAxis.png   |  Bin 0 -> 1831 bytes
 hxcrosscorrelation/doc/HxPlaneToCCR_tiltType.png   |  Bin 0 -> 2018 bytes
 hxcrosscorrelation/doc/HxPlaneToCCR_voxelSize.png  |  Bin 0 -> 1331 bytes
 .../doc/HxReferenceIndicesToData_scalar.doc        |   27 +
 .../doc/HxReferenceIndicesToData_vector.doc        |   28 +
 hxcrosscorrelation/doc/HxSolidCylinderToCCR.doc    |  121 +++
 .../doc/HxSolidCylinderToCCR_cylinderParameter.png |  Bin 0 -> 4867 bytes
 .../doc/HxSolidCylinderToCCR_defineForeground.png  |  Bin 0 -> 4561 bytes
 .../doc/HxSolidCylinderToCCR_defineForground.png   |  Bin 0 -> 1918 bytes
 .../doc/HxSolidCylinderToCCR_increment.png         |  Bin 0 -> 2800 bytes
 .../doc/HxSolidCylinderToCCR_maskParameter.png     |  Bin 0 -> 4769 bytes
 .../doc/HxSolidCylinderToCCR_options.png           |  Bin 0 -> 4923 bytes
 .../doc/HxSolidCylinderToCCR_psiRange.png          |  Bin 0 -> 3649 bytes
 .../doc/HxSolidCylinderToCCR_smoothing.png         |  Bin 0 -> 2483 bytes
 .../doc/HxSolidCylinderToCCR_thetaRange.png        |  Bin 0 -> 3660 bytes
 .../doc/HxSolidCylinderToCCR_tiltAngles.png        |  Bin 0 -> 3577 bytes
 .../doc/HxSolidCylinderToCCR_tiltAxis.png          |  Bin 0 -> 2909 bytes
 .../doc/HxSolidCylinderToCCR_tiltType.png          |  Bin 0 -> 3667 bytes
 .../doc/HxSolidCylinderToCCR_voxelSize.png         |  Bin 0 -> 3218 bytes
 hxcrosscorrelation/doc/HxSolidSphereToCCR.doc      |   93 ++
 .../doc/HxSolidSphereToCCR_defineForground.png     |  Bin 0 -> 1918 bytes
 .../doc/HxSolidSphereToCCR_increment.png           |  Bin 0 -> 1406 bytes
 .../doc/HxSolidSphereToCCR_options.png             |  Bin 0 -> 2335 bytes
 .../doc/HxSolidSphereToCCR_scaleRange.png          |  Bin 0 -> 1773 bytes
 .../doc/HxSolidSphereToCCR_smoothing.png           |  Bin 0 -> 1255 bytes
 .../doc/HxSolidSphereToCCR_sphereParameter.png     |  Bin 0 -> 1699 bytes
 .../doc/HxSolidSphereToCCR_tiltAngles.png          |  Bin 0 -> 1810 bytes
 .../doc/HxSolidSphereToCCR_tiltAxis.png            |  Bin 0 -> 1831 bytes
 .../doc/HxSolidSphereToCCR_tiltType.png            |  Bin 0 -> 2018 bytes
 .../doc/HxSolidSphereToCCR_voxelSize.png           |  Bin 0 -> 1331 bytes
 hxcrosscorrelation/hxcrosscorrelationWinDLLAPI.h   |   19 +
 .../share/resources/hxcrosscorrelation.rc          |   74 ++
 .../script-objects/TraceFilamentsAndFilter.scro    |   82 ++-
 hxlineextraction/HxAngularDistribution.cpp         |  272 ++++++
 hxlineextraction/HxAngularDistribution.h           |   75 ++
 hxlineextraction/HxExtractLines.cpp                |  951 ++++++++++++++++++++
 hxlineextraction/HxExtractLines.h                  |  239 +++++
 hxlineextraction/HxLinesetToSpreadSheet.cpp        |  100 ++
 hxlineextraction/HxLinesetToSpreadSheet.h          |   51 ++
 hxlineextraction/Package                           |   10 +
 hxlineextraction/doc/HxAngularDistribution.doc     |   17 +
 hxlineextraction/doc/HxExtractLines.doc            |  122 +++
 hxlineextraction/doc/HxExtractLines_.png           |  Bin 0 -> 153 bytes
 .../doc/HxExtractLines_advancedMenu.png            |  Bin 0 -> 1465 bytes
 .../doc/HxExtractLines_cocircularity.png           |  Bin 0 -> 2227 bytes
 .../doc/HxExtractLines_coneAutoParameter.png       |  Bin 0 -> 1908 bytes
 hxlineextraction/doc/HxExtractLines_distance.png   |  Bin 0 -> 2006 bytes
 .../doc/HxExtractLines_getLabelFields.png          |  Bin 0 -> 2483 bytes
 hxlineextraction/doc/HxExtractLines_linearity.png  |  Bin 0 -> 2081 bytes
 hxlineextraction/doc/HxExtractLines_maskRadius.png |  Bin 0 -> 1486 bytes
 .../doc/HxExtractLines_minCorrelation.png          |  Bin 0 -> 2287 bytes
 .../doc/HxExtractLines_minLineLength.png           |  Bin 0 -> 1450 bytes
 hxlineextraction/doc/HxExtractLines_radius.png     |  Bin 0 -> 1355 bytes
 hxlineextraction/doc/HxExtractLines_scale.png      |  Bin 0 -> 1387 bytes
 .../doc/HxExtractLines_searchConeAngle.png         |  Bin 0 -> 1613 bytes
 .../doc/HxExtractLines_searchConeSize.png          |  Bin 0 -> 1710 bytes
 .../doc/HxExtractLines_similThreshold.png          |  Bin 0 -> 2172 bytes
 .../doc/HxExtractLines_similarityFactors.png       |  Bin 0 -> 2628 bytes
 .../doc/HxExtractLines_timerThreshold.png          |  Bin 0 -> 1972 bytes
 hxlineextraction/doc/HxLineSetToSpreadSheet.doc    |   17 +
 hxlineextraction/hxlineextractionWinDLLAPI.h       |   19 +
 .../share/resources/hxlineextraction.rc            |   17 +
 hxneuralnetwork/ASTToQueryVisitor.cpp              |   55 +-
 hxneuralnetwork/ASTToQueryVisitor.h                |   12 +-
 hxneuralnetwork/ASTVisitorTest.cpp                 |   54 +-
 hxneuralnetwork/ASTVisitorTest.h                   |    9 +-
 hxneuralnetwork/AbstractSyntaxTree.cpp             |   55 +-
 hxneuralnetwork/AbstractSyntaxTree.h               |   35 +-
 hxneuralnetwork/AbstractSyntaxTreeVisitor.h        |   10 +-
 hxneuralnetwork/HxCreateMorphologyGallery.cpp      |  199 +++--
 hxneuralnetwork/HxCreateMorphologyGallery.h        |   30 +-
 hxneuralnetwork/HxNeuralNetworkAnalyzer.cpp        |   75 ++-
 hxneuralnetwork/HxNeuralNetworkAnalyzer.h          |   14 +-
 hxneuralnetwork/HxNeuralNetworkAnalyzerTest.cpp    |    2 +-
 hxneuralnetwork/HxNeuralNetworkSubApp.cpp          |   14 +-
 hxneuralnetwork/HxNeuronDistributorTest.cpp        |   10 +-
 hxneuralnetwork/MorphologyManager.cpp              |   64 +-
 hxneuralnetwork/MorphologyManager.h                |   11 +-
 hxneuralnetwork/MorphologyManagerTest.cpp          |   37 +-
 hxneuralnetwork/MorphologyManagerTest.h            |    1 +
 hxneuralnetwork/NeuralNetworkDSLParser.l           |   10 +-
 hxneuralnetwork/NeuralNetworkDSLParser.y           |   84 ++-
 hxneuralnetwork/NeuralNetworkDSLParserTest.cpp     |   33 +-
 hxneuralnetwork/NeuralNetworkDSLParserTest.h       |   11 +-
 hxneuralnetwork/Package                            |    3 -
 hxneuralnetwork/PrintASTVisitor.cpp                |   27 +-
 hxneuralnetwork/PrintASTVisitor.h                  |    9 +-
 hxneuralnetwork/QxAddFilesDialog.cpp               |   55 --
 hxneuralnetwork/QxAddFilesDialog.h                 |   30 -
 hxneuralnetwork/QxAddFilesDialogUI.ui              |   85 --
 hxneuralnetwork/SelectionPredicateCellTypeIs.cpp   |   42 +
 hxneuralnetwork/SelectionPredicateCellTypeIs.h     |   24 +
 ...st.cpp => SelectionPredicateCellTypeIsTest.cpp} |   11 +-
 hxneuralnetwork/SelectionPredicateCellTypeIsTest.h |   18 +
 .../SelectionPredicateHasCellTypeName.cpp          |   27 -
 .../SelectionPredicateHasCellTypeName.h            |   21 -
 .../SelectionPredicateHasCellTypeNameTest.h        |   18 -
 hxneuralnetwork/SelectionPredicateTreeNode.cpp     |   21 +-
 hxneuralnetwork/SelectionPredicateTreeNode.h       |   16 +-
 hxneuralnetwork/SelectionQuery.cpp                 |   26 +-
 hxneuralnetwork/SelectionQuery.h                   |   25 +-
 hxneuralnetwork/SelectionQueryExecutor.cpp         |   73 ++-
 hxneuralnetwork/SelectionQueryExecutorTest.cpp     |   73 ++-
 hxneuralnetwork/SelectionQueryExecutorTest.h       |    6 +-
 hxneuralnetwork/SelectionQueryManager.cpp          |    2 +-
 hxneuralnetwork/SelectionQueryResult.cpp           |   13 +
 hxneuralnetwork/SelectionQueryResult.h             |    4 +
 hxneuralnetwork/TestHelpers.cpp                    |   16 +-
 hxneuralnetwork/share/resources/hxneuralnetwork.rc |   17 -
 .../share/resources/test_hxneuralnetwork.rc        |    2 +-
 .../HxLandmarksInSurface.cpp                       |    0
 .../HxLandmarksInSurface.h                         |    4 +-
 .../MeasurementFunctions.cpp                       |    0
 .../MeasurementFunctions.h                         |    4 +-
 hxneuronkernels/Package                            |    1 +
 hxneuronkernels/share/resources/hxneuronkernels.rc |    5 +
 hxoptimizeactiveshape2/GlobalOptimizeFunc.cpp      |  435 ++++++++--
 hxoptimizeactiveshape2/GlobalOptimizeFunc.h        |   51 +-
 hxoptimizeactiveshape2/GridSamples.cpp             |    2 +-
 hxoptimizeactiveshape2/HxGlobalOptimize.cpp        |    8 +-
 hxoptimizeactiveshape2/HxTestParameters.cpp        |    4 +-
 hxrabbitct/HxRabbitCTRunner.cpp                    |   54 +-
 hxrabbitct/HxRabbitCTRunner.h                      |    5 +-
 hxrabbitct/Package                                 |    2 -
 hxscanconvert/Bresenham.cpp                        |  152 ++++
 hxscanconvert/Bresenham.h                          |   31 +
 hxscanconvert/HxScanConvert.cpp                    |  202 +++++
 hxscanconvert/HxScanConvert.h                      |   83 ++
 hxscanconvert/HxScanConvertCylinder.cpp            |  110 +++
 hxscanconvert/HxScanConvertCylinder.h              |   37 +
 hxscanconvert/HxScanConvertCylinderHollow.cpp      |  165 ++++
 hxscanconvert/HxScanConvertCylinderHollow.h        |   37 +
 hxscanconvert/HxScanConvertPlane.cpp               |  111 +++
 hxscanconvert/HxScanConvertPlane.h                 |   37 +
 hxscanconvert/HxScanConvertSphere.cpp              |   97 ++
 hxscanconvert/HxScanConvertSphere.h                |   36 +
 hxscanconvert/HxScanConvertSphereHollow.cpp        |  155 ++++
 hxscanconvert/HxScanConvertSphereHollow.h          |   36 +
 hxscanconvert/Package                              |   10 +
 hxscanconvert/ScanConvert.cpp                      |  477 ++++++++++
 hxscanconvert/ScanConvert.h                        |  125 +++
 hxscanconvert/ScanConvertCylinder.cpp              |  159 ++++
 hxscanconvert/ScanConvertCylinder.h                |   51 ++
 hxscanconvert/ScanConvertPlane.cpp                 |   99 ++
 hxscanconvert/ScanConvertPlane.h                   |   56 ++
 hxscanconvert/ScanConvertSphere.cpp                |   76 ++
 hxscanconvert/ScanConvertSphere.h                  |   49 +
 hxscanconvert/hxscanconvertWinDLLAPI.h             |   19 +
 hxscanconvert/share/resources/hxscanconvert.rc     |   24 +
 .../HxSetSpatialGraphInterfaceImpl.cpp             |    2 +-
 hxspatialgraphset/HxSetSpatialGraphInterfaceImpl.h |    2 +-
 hxspatialgraphset/HxSpatialGraphSet.cpp            |    4 +-
 hxspatialgraphset/HxSpatialGraphSet.h              |    4 +-
 hxspatialgraphset/HxSpatialGraphSetLegend.cpp      |   45 +-
 hxspatialgraphset/HxSpatialGraphSetLegend.h        |    3 +-
 hxspatialgraphset/HxSpatialGraphSetView.cpp        |   92 ++-
 hxspatialgraphset/HxSpatialGraphSetView.h          |   15 +-
 .../QxSpatialGraphSetViewSelectionDialog.cpp       |   43 +-
 hxtemplatematching/HxRadonTransform.cpp            |    4 +-
 hxtensor3d/HxExtractTensorSlice.cpp                |   92 ++-
 hxtensor3d/HxExtractTensorSlice.h                  |    9 +
 hxtensor3d/HxStructureTensor.cpp                   |    4 +-
 hxtensor3dSegmentation/Package                     |    2 +-
 hxtensordisplay/HxTensorGlyphDisplay.cpp           |  418 +++++++++
 hxtensordisplay/HxTensorGlyphDisplay.h             |  132 +++
 hxtensordisplay/Package                            |   37 +-
 hxtensordisplay/share/resources/hxtensordisplay.rc |    6 +
 .../hxtensordisplay/HxTensorGlyphDisplay-Frag.glsl |   69 ++
 .../hxtensordisplay/HxTensorGlyphDisplay-Geom.glsl |  154 ++++
 .../HxTensorGlyphDisplay-Vertex.glsl               |  293 ++++++
 hxtensordisplay2d/HxTensorGlyphDisplay2D.cpp       |  151 ++--
 hxtensordisplay2d/HxTensorGlyphDisplay2D.h         |   54 +-
 hxtomtools/HxAverageSlices.cpp                     |  114 +++
 hxtomtools/HxAverageSlices.h                       |   61 ++
 hxtomtools/HxRemoveSmallSurfaces.cpp               |  247 +++++
 hxtomtools/HxRemoveSmallSurfaces.h                 |   73 ++
 hxtomtools/Package                                 |   10 +
 hxtomtools/doc/HxAverageSlices.doc                 |   27 +
 hxtomtools/doc/HxAverageSlices_numSlices.png       |  Bin 0 -> 1603 bytes
 hxtomtools/doc/HxRemoveSmallSurfaces.doc           |   28 +
 .../doc/HxRemoveSmallSurfaces_surfaceSize.png      |  Bin 0 -> 1614 bytes
 hxtomtools/hxtomtoolsWinDLLAPI.h                   |   19 +
 hxtomtools/share/resources/hxtomtools.rc           |   11 +
 282 files changed, 14158 insertions(+), 1084 deletions(-)
 delete mode 100755 cgal/BuildCGAL.sh
 create mode 100755 cgal/BuildCGALforLinux.sh
 rename {hxneuralnetwork => hxcortexinsilico}/ConnectEndNodesToSomaOperationSet.cpp (100%)
 rename {hxneuralnetwork => hxcortexinsilico}/ConnectEndNodesToSomaOperationSet.h (100%)
 create mode 100644 hxcortexinsilico/Package
 rename {hxneuralnetwork => hxcortexinsilico}/QxCorticalColumnTool.cpp (99%)
 rename {hxneuralnetwork => hxcortexinsilico}/QxCorticalColumnTool.h (96%)
 rename {hxneuralnetwork => hxcortexinsilico}/QxCorticalColumnTool.ui (100%)
 create mode 100644 hxcortexinsilico/hxcortexinsilicoAPI.h
 rename {hxneuralnetwork => hxcortexinsilico}/share/png/CorticalColumnTool.png (100%)
 create mode 100644 hxcortexinsilico/share/resources/hxcortexinsilico.rc
 create mode 100644 hxcrosscorrelation/CCR.cpp
 create mode 100644 hxcrosscorrelation/CCR.h
 create mode 100644 hxcrosscorrelation/CCR_hollowCylinder.cpp
 create mode 100644 hxcrosscorrelation/CCR_hollowCylinder.h
 create mode 100644 hxcrosscorrelation/CCR_hollowSphere.cpp
 create mode 100644 hxcrosscorrelation/CCR_hollowSphere.h
 create mode 100644 hxcrosscorrelation/CCR_plane.cpp
 create mode 100644 hxcrosscorrelation/CCR_plane.h
 create mode 100644 hxcrosscorrelation/CCR_rotation.cpp
 create mode 100644 hxcrosscorrelation/CCR_rotation.h
 create mode 100644 hxcrosscorrelation/CCR_scale.cpp
 create mode 100644 hxcrosscorrelation/CCR_scale.h
 create mode 100644 hxcrosscorrelation/CCR_solidCylinder.cpp
 create mode 100644 hxcrosscorrelation/CCR_solidCylinder.h
 create mode 100644 hxcrosscorrelation/CCR_solidSphere.cpp
 create mode 100644 hxcrosscorrelation/CCR_solidSphere.h
 create mode 100644 hxcrosscorrelation/CrossCorrelation.cpp
 create mode 100644 hxcrosscorrelation/CrossCorrelation.h
 create mode 100644 hxcrosscorrelation/CrossCorrelation_cuda.cu
 create mode 100644 hxcrosscorrelation/DataSplitter.cpp
 create mode 100644 hxcrosscorrelation/DataSplitter.h
 create mode 100644 hxcrosscorrelation/HxCCRShow.cpp
 create mode 100644 hxcrosscorrelation/HxCCRShow.h
 create mode 100644 hxcrosscorrelation/HxCrossCorrelation.cpp
 create mode 100644 hxcrosscorrelation/HxCrossCorrelation.h
 create mode 100644 hxcrosscorrelation/HxDataToSpreadsheet.cpp
 create mode 100644 hxcrosscorrelation/HxDataToSpreadsheet.h
 create mode 100644 hxcrosscorrelation/HxHollowCylinderToCCR.cpp
 create mode 100644 hxcrosscorrelation/HxHollowCylinderToCCR.h
 create mode 100644 hxcrosscorrelation/HxHollowSphereToCCR.cpp
 create mode 100644 hxcrosscorrelation/HxHollowSphereToCCR.h
 create mode 100644 hxcrosscorrelation/HxPlaneToCCR.cpp
 create mode 100644 hxcrosscorrelation/HxPlaneToCCR.h
 create mode 100644 hxcrosscorrelation/HxReferenceIndicesToData_scalar.cpp
 create mode 100644 hxcrosscorrelation/HxReferenceIndicesToData_scalar.h
 create mode 100644 hxcrosscorrelation/HxReferenceIndicesToData_vector.cpp
 create mode 100644 hxcrosscorrelation/HxReferenceIndicesToData_vector.h
 create mode 100644 hxcrosscorrelation/HxSolidCylinderToCCR.cpp
 create mode 100644 hxcrosscorrelation/HxSolidCylinderToCCR.h
 create mode 100644 hxcrosscorrelation/HxSolidSphereToCCR.cpp
 create mode 100644 hxcrosscorrelation/HxSolidSphereToCCR.h
 create mode 100644 hxcrosscorrelation/Package
 create mode 100644 hxcrosscorrelation/doc/HxCCRShow.doc
 create mode 100644 hxcrosscorrelation/doc/HxCCRShow_selectReference.png
 create mode 100644 hxcrosscorrelation/doc/HxCrossCorrelation.doc
 create mode 100644 hxcrosscorrelation/doc/HxCrossCorrelation_GPUDevice.png
 create mode 100644 hxcrosscorrelation/doc/HxCrossCorrelation_GPUMemory.png
 create mode 100644 hxcrosscorrelation/doc/HxCrossCorrelation_blockSize.png
 create mode 100644 hxcrosscorrelation/doc/HxCrossCorrelation_nrBlocks.png
 create mode 100644 hxcrosscorrelation/doc/HxCrossCorrelation_timerThreshold.png
 create mode 100644 hxcrosscorrelation/doc/HxDataToSpreadSheet.doc
 create mode 100644 hxcrosscorrelation/doc/HxDataToSpreadSheet_threshold.png
 create mode 100644 hxcrosscorrelation/doc/HxHollowCylinderToCCR.doc
 create mode 100644 hxcrosscorrelation/doc/HxHollowCylinderToCCR_cylinderParameter.png
 create mode 100644 hxcrosscorrelation/doc/HxHollowCylinderToCCR_defineForeground.png
 create mode 100644 hxcrosscorrelation/doc/HxHollowCylinderToCCR_defineForground.png
 create mode 100644 hxcrosscorrelation/doc/HxHollowCylinderToCCR_increment.png
 create mode 100644 hxcrosscorrelation/doc/HxHollowCylinderToCCR_maskParameter.png
 create mode 100644 hxcrosscorrelation/doc/HxHollowCylinderToCCR_options.png
 create mode 100644 hxcrosscorrelation/doc/HxHollowCylinderToCCR_psiRange.png
 create mode 100644 hxcrosscorrelation/doc/HxHollowCylinderToCCR_smoothing.png
 create mode 100644 hxcrosscorrelation/doc/HxHollowCylinderToCCR_thetaRange.png
 create mode 100644 hxcrosscorrelation/doc/HxHollowCylinderToCCR_tiltAngles.png
 create mode 100644 hxcrosscorrelation/doc/HxHollowCylinderToCCR_tiltAxis.png
 create mode 100644 hxcrosscorrelation/doc/HxHollowCylinderToCCR_tiltType.png
 create mode 100644 hxcrosscorrelation/doc/HxHollowCylinderToCCR_voxelSize.png
 create mode 100644 hxcrosscorrelation/doc/HxHollowSphereToCCR.doc
 create mode 100644 hxcrosscorrelation/doc/HxHollowSphereToCCR_defineForground.png
 create mode 100644 hxcrosscorrelation/doc/HxHollowSphereToCCR_increment.png
 create mode 100644 hxcrosscorrelation/doc/HxHollowSphereToCCR_options.png
 create mode 100644 hxcrosscorrelation/doc/HxHollowSphereToCCR_scaleRange.png
 create mode 100644 hxcrosscorrelation/doc/HxHollowSphereToCCR_smoothing.png
 create mode 100644 hxcrosscorrelation/doc/HxHollowSphereToCCR_sphereParameter.png
 create mode 100644 hxcrosscorrelation/doc/HxHollowSphereToCCR_tiltAngles.png
 create mode 100644 hxcrosscorrelation/doc/HxHollowSphereToCCR_tiltAxis.png
 create mode 100644 hxcrosscorrelation/doc/HxHollowSphereToCCR_tiltType.png
 create mode 100644 hxcrosscorrelation/doc/HxHollowSphereToCCR_voxelSize.png
 create mode 100644 hxcrosscorrelation/doc/HxPlaneToCCR.doc
 create mode 100644 hxcrosscorrelation/doc/HxPlaneToCCR_defineForground.png
 create mode 100644 hxcrosscorrelation/doc/HxPlaneToCCR_increment.png
 create mode 100644 hxcrosscorrelation/doc/HxPlaneToCCR_options.png
 create mode 100644 hxcrosscorrelation/doc/HxPlaneToCCR_planeParameter.png
 create mode 100644 hxcrosscorrelation/doc/HxPlaneToCCR_psiRange.png
 create mode 100644 hxcrosscorrelation/doc/HxPlaneToCCR_subdivision.png
 create mode 100644 hxcrosscorrelation/doc/HxPlaneToCCR_thetaRange.png
 create mode 100644 hxcrosscorrelation/doc/HxPlaneToCCR_tiltAngles.png
 create mode 100644 hxcrosscorrelation/doc/HxPlaneToCCR_tiltAxis.png
 create mode 100644 hxcrosscorrelation/doc/HxPlaneToCCR_tiltType.png
 create mode 100644 hxcrosscorrelation/doc/HxPlaneToCCR_voxelSize.png
 create mode 100644 hxcrosscorrelation/doc/HxReferenceIndicesToData_scalar.doc
 create mode 100644 hxcrosscorrelation/doc/HxReferenceIndicesToData_vector.doc
 create mode 100644 hxcrosscorrelation/doc/HxSolidCylinderToCCR.doc
 create mode 100644 hxcrosscorrelation/doc/HxSolidCylinderToCCR_cylinderParameter.png
 create mode 100644 hxcrosscorrelation/doc/HxSolidCylinderToCCR_defineForeground.png
 create mode 100644 hxcrosscorrelation/doc/HxSolidCylinderToCCR_defineForground.png
 create mode 100644 hxcrosscorrelation/doc/HxSolidCylinderToCCR_increment.png
 create mode 100644 hxcrosscorrelation/doc/HxSolidCylinderToCCR_maskParameter.png
 create mode 100644 hxcrosscorrelation/doc/HxSolidCylinderToCCR_options.png
 create mode 100644 hxcrosscorrelation/doc/HxSolidCylinderToCCR_psiRange.png
 create mode 100644 hxcrosscorrelation/doc/HxSolidCylinderToCCR_smoothing.png
 create mode 100644 hxcrosscorrelation/doc/HxSolidCylinderToCCR_thetaRange.png
 create mode 100644 hxcrosscorrelation/doc/HxSolidCylinderToCCR_tiltAngles.png
 create mode 100644 hxcrosscorrelation/doc/HxSolidCylinderToCCR_tiltAxis.png
 create mode 100644 hxcrosscorrelation/doc/HxSolidCylinderToCCR_tiltType.png
 create mode 100644 hxcrosscorrelation/doc/HxSolidCylinderToCCR_voxelSize.png
 create mode 100644 hxcrosscorrelation/doc/HxSolidSphereToCCR.doc
 create mode 100644 hxcrosscorrelation/doc/HxSolidSphereToCCR_defineForground.png
 create mode 100644 hxcrosscorrelation/doc/HxSolidSphereToCCR_increment.png
 create mode 100644 hxcrosscorrelation/doc/HxSolidSphereToCCR_options.png
 create mode 100644 hxcrosscorrelation/doc/HxSolidSphereToCCR_scaleRange.png
 create mode 100644 hxcrosscorrelation/doc/HxSolidSphereToCCR_smoothing.png
 create mode 100644 hxcrosscorrelation/doc/HxSolidSphereToCCR_sphereParameter.png
 create mode 100644 hxcrosscorrelation/doc/HxSolidSphereToCCR_tiltAngles.png
 create mode 100644 hxcrosscorrelation/doc/HxSolidSphereToCCR_tiltAxis.png
 create mode 100644 hxcrosscorrelation/doc/HxSolidSphereToCCR_tiltType.png
 create mode 100644 hxcrosscorrelation/doc/HxSolidSphereToCCR_voxelSize.png
 create mode 100644 hxcrosscorrelation/hxcrosscorrelationWinDLLAPI.h
 create mode 100644 hxcrosscorrelation/share/resources/hxcrosscorrelation.rc
 create mode 100644 hxlineextraction/HxAngularDistribution.cpp
 create mode 100644 hxlineextraction/HxAngularDistribution.h
 create mode 100644 hxlineextraction/HxExtractLines.cpp
 create mode 100644 hxlineextraction/HxExtractLines.h
 create mode 100644 hxlineextraction/HxLinesetToSpreadSheet.cpp
 create mode 100644 hxlineextraction/HxLinesetToSpreadSheet.h
 create mode 100644 hxlineextraction/Package
 create mode 100644 hxlineextraction/doc/HxAngularDistribution.doc
 create mode 100644 hxlineextraction/doc/HxExtractLines.doc
 create mode 100644 hxlineextraction/doc/HxExtractLines_.png
 create mode 100644 hxlineextraction/doc/HxExtractLines_advancedMenu.png
 create mode 100644 hxlineextraction/doc/HxExtractLines_cocircularity.png
 create mode 100644 hxlineextraction/doc/HxExtractLines_coneAutoParameter.png
 create mode 100644 hxlineextraction/doc/HxExtractLines_distance.png
 create mode 100644 hxlineextraction/doc/HxExtractLines_getLabelFields.png
 create mode 100644 hxlineextraction/doc/HxExtractLines_linearity.png
 create mode 100644 hxlineextraction/doc/HxExtractLines_maskRadius.png
 create mode 100644 hxlineextraction/doc/HxExtractLines_minCorrelation.png
 create mode 100644 hxlineextraction/doc/HxExtractLines_minLineLength.png
 create mode 100644 hxlineextraction/doc/HxExtractLines_radius.png
 create mode 100644 hxlineextraction/doc/HxExtractLines_scale.png
 create mode 100644 hxlineextraction/doc/HxExtractLines_searchConeAngle.png
 create mode 100644 hxlineextraction/doc/HxExtractLines_searchConeSize.png
 create mode 100644 hxlineextraction/doc/HxExtractLines_similThreshold.png
 create mode 100644 hxlineextraction/doc/HxExtractLines_similarityFactors.png
 create mode 100644 hxlineextraction/doc/HxExtractLines_timerThreshold.png
 create mode 100644 hxlineextraction/doc/HxLineSetToSpreadSheet.doc
 create mode 100644 hxlineextraction/hxlineextractionWinDLLAPI.h
 create mode 100644 hxlineextraction/share/resources/hxlineextraction.rc
 delete mode 100644 hxneuralnetwork/QxAddFilesDialog.cpp
 delete mode 100644 hxneuralnetwork/QxAddFilesDialog.h
 delete mode 100644 hxneuralnetwork/QxAddFilesDialogUI.ui
 create mode 100644 hxneuralnetwork/SelectionPredicateCellTypeIs.cpp
 create mode 100644 hxneuralnetwork/SelectionPredicateCellTypeIs.h
 rename hxneuralnetwork/{SelectionPredicateHasCellTypeNameTest.cpp => SelectionPredicateCellTypeIsTest.cpp} (66%)
 create mode 100644 hxneuralnetwork/SelectionPredicateCellTypeIsTest.h
 delete mode 100644 hxneuralnetwork/SelectionPredicateHasCellTypeName.cpp
 delete mode 100644 hxneuralnetwork/SelectionPredicateHasCellTypeName.h
 delete mode 100644 hxneuralnetwork/SelectionPredicateHasCellTypeNameTest.h
 rename {hxneuralnetwork => hxneuronkernels}/HxLandmarksInSurface.cpp (100%)
 rename {hxneuralnetwork => hxneuronkernels}/HxLandmarksInSurface.h (92%)
 rename {hxneuralnetwork => hxneuronkernels}/MeasurementFunctions.cpp (100%)
 rename {hxneuralnetwork => hxneuronkernels}/MeasurementFunctions.h (83%)
 create mode 100644 hxscanconvert/Bresenham.cpp
 create mode 100644 hxscanconvert/Bresenham.h
 create mode 100644 hxscanconvert/HxScanConvert.cpp
 create mode 100644 hxscanconvert/HxScanConvert.h
 create mode 100644 hxscanconvert/HxScanConvertCylinder.cpp
 create mode 100644 hxscanconvert/HxScanConvertCylinder.h
 create mode 100644 hxscanconvert/HxScanConvertCylinderHollow.cpp
 create mode 100644 hxscanconvert/HxScanConvertCylinderHollow.h
 create mode 100644 hxscanconvert/HxScanConvertPlane.cpp
 create mode 100644 hxscanconvert/HxScanConvertPlane.h
 create mode 100644 hxscanconvert/HxScanConvertSphere.cpp
 create mode 100644 hxscanconvert/HxScanConvertSphere.h
 create mode 100644 hxscanconvert/HxScanConvertSphereHollow.cpp
 create mode 100644 hxscanconvert/HxScanConvertSphereHollow.h
 create mode 100644 hxscanconvert/Package
 create mode 100644 hxscanconvert/ScanConvert.cpp
 create mode 100644 hxscanconvert/ScanConvert.h
 create mode 100644 hxscanconvert/ScanConvertCylinder.cpp
 create mode 100644 hxscanconvert/ScanConvertCylinder.h
 create mode 100644 hxscanconvert/ScanConvertPlane.cpp
 create mode 100644 hxscanconvert/ScanConvertPlane.h
 create mode 100644 hxscanconvert/ScanConvertSphere.cpp
 create mode 100644 hxscanconvert/ScanConvertSphere.h
 create mode 100644 hxscanconvert/hxscanconvertWinDLLAPI.h
 create mode 100644 hxscanconvert/share/resources/hxscanconvert.rc
 create mode 100644 hxtensordisplay/HxTensorGlyphDisplay.cpp
 create mode 100644 hxtensordisplay/HxTensorGlyphDisplay.h
 create mode 100644 hxtensordisplay/share/shaders/hxtensordisplay/HxTensorGlyphDisplay-Frag.glsl
 create mode 100644 hxtensordisplay/share/shaders/hxtensordisplay/HxTensorGlyphDisplay-Geom.glsl
 create mode 100644 hxtensordisplay/share/shaders/hxtensordisplay/HxTensorGlyphDisplay-Vertex.glsl
 create mode 100644 hxtomtools/HxAverageSlices.cpp
 create mode 100644 hxtomtools/HxAverageSlices.h
 create mode 100644 hxtomtools/HxRemoveSmallSurfaces.cpp
 create mode 100644 hxtomtools/HxRemoveSmallSurfaces.h
 create mode 100644 hxtomtools/Package
 create mode 100644 hxtomtools/doc/HxAverageSlices.doc
 create mode 100644 hxtomtools/doc/HxAverageSlices_numSlices.png
 create mode 100644 hxtomtools/doc/HxRemoveSmallSurfaces.doc
 create mode 100644 hxtomtools/doc/HxRemoveSmallSurfaces_surfaceSize.png
 create mode 100644 hxtomtools/hxtomtoolsWinDLLAPI.h
 create mode 100644 hxtomtools/share/resources/hxtomtools.rc

$ git status
# On branch marianne
nothing to commit (working directory clean)

Do, although there were no conflicts during the merge, and the merge does not seem to touch hxprofile1d/HxComputeProfileAlongAxis.cpp, the local changes in that file are gone. I'm seeing this on Linux and Windows, with versions 1.7.4.3 and 1.7.6.

I'd say this is not expected, or am I missing something?

[1] http://manpages.ubuntu.com/manpages/oneiric/man1/git-merge.1.html

-- 
Sebastian Schuberth

^ permalink raw reply

* Re: [PATCH] Docs: git checkout --orphan: `root commit' and `branch head'
From: Matthieu Moy @ 2011-09-28 14:09 UTC (permalink / raw)
  To: Michael Witten
  Cc: Junio C Hamano, Jeff King, Philip Oakley, Eric Raible,
	Michael J Gruber, Carlos Martín Nieto, vra5107, git
In-Reply-To: <CAMOZ1Bu8UiV+Z0+0CLjxSv5Zic8i4=aGxnzmLc+H7c2T-P4avw@mail.gmail.com>

Michael Witten <mfwitten@gmail.com> writes:

> Well, as Junio mentioned, "--orphan" could be deprecated in favor of
> "--no-parent"; the uncommon nature of this task works to our
> advantage, in that it makes a deprecation of "--orphan" easy.

I agree that _some_ cases would be more natural with commit --no-parent,
but I disagree that it is a better solution in general.

For example

# I want to create a new root commit with a different tree
git rm -fr *
vi file-in-new-project.txt
git add file-in-new-project.txt
# continue hacking for a while
git commit -m "New project" # oops, I forgot the --no-parent

History is not destroyed and you can still "git reset" back to the
previous commit, but you've at least temporarily damaged your branch
(and no --force flag could have prevented it). With "git checkout
--orphan" in the above scenario, you run the command at the time you
take the decision you want to create a root commit, and then hack
normally.

Even if you use it normally:

# I want to create a new root commit with a different tree
git checkout -b new-project
# hack for a while
git status
# ?!? why are files shown as 'deleted', 'moved', 'modified', I said I
# was creating a new project!

Also, with your proposal, we would need to add two flags to "commit"
(--no-parent and --force), which is one of the first command beginners
learn, while in the current state we have just one for "checkout" to do
the trick, and newbies do not use or read the doc for checkout, so it's
not scary for them.

-- 
Matthieu Moy
http://www-verimag.imag.fr/~moy/

^ permalink raw reply

* Re: Problems with git-svn and space in the URL
From: karl @ 2011-09-28 14:04 UTC (permalink / raw)
  To: git
In-Reply-To: <0A790195-2DB1-4E1F-BAE2-9D65C261AD26@sky4studios.be>

I was able to work around this issue by patching git-svn.

I updated the url_path function to:


sub url_path {
	my ($self, $path) = @_;

	my $url = $self->{url} . '/' . $self->repo_path($path);
	if ($self->{url} =~ m#^https?://#) {
		$url =~ s!([^~a-zA-Z0-9_./-])!uc sprintf("%%%02x",ord($1))!eg;
                $url =~ s!^(https?)%3A//!$1://!;
	}
    $url
}


This ensures that the spaces in the url are encoded correctly.

It seems to work for me, but hasn't been tested thoroughly.

--
View this message in context: http://git.661346.n2.nabble.com/Problems-with-git-svn-and-space-in-the-URL-tp5120361p6840304.html
Sent from the git mailing list archive at Nabble.com.

^ permalink raw reply

* Re: [PATCH] Docs: git checkout --orphan: `root commit' and `branch head'
From: Michael Witten @ 2011-09-28 13:50 UTC (permalink / raw)
  To: Matthieu Moy
  Cc: Junio C Hamano, Jeff King, Philip Oakley, Eric Raible,
	Michael J Gruber, Carlos Martín Nieto, vra5107, git
In-Reply-To: <vpqty7wok5a.fsf@bauges.imag.fr>

On Wed, Sep 28, 2011 at 13:45, Matthieu Moy
<Matthieu.Moy@grenoble-inp.fr> wrote:
> Michael Witten <mfwitten@gmail.com> writes:
>
>> Well, I think Jeff already proferred a solution. We could have:
>>
>>   git commit --no-parent
> [...]
>
> Appart from the safety objections, is the "root commit" senario common
> enough to deserve appearing in the user-interface for both "commit" and
> "checkout"?
>
> I think "git commit -h" is scary enough as it is ...

Well, as Junio mentioned, "--orphan" could be deprecated in favor of
"--no-parent"; the uncommon nature of this task works to our
advantage, in that it makes a deprecation of "--orphan" easy.

^ permalink raw reply

* [PATCH] git-remote-mediawiki: allow a domain to be set for authentication
From: Matthieu Moy @ 2011-09-28 13:48 UTC (permalink / raw)
  To: git, gitster; +Cc: Matthieu Moy
In-Reply-To: <1317146100-22938-3-git-send-email-Matthieu.Moy@imag.fr>

When the wiki uses e.g. LDAP for authentication, the web interface shows
a popup to allow the user to chose an authentication domain, and we need
to use lgdomain in the API at login time.

Signed-off-by: Matthieu Moy <Matthieu.Moy@imag.fr>
---
 contrib/mw-to-git/git-remote-mediawiki |    3 +++
 1 files changed, 3 insertions(+), 0 deletions(-)

diff --git a/contrib/mw-to-git/git-remote-mediawiki b/contrib/mw-to-git/git-remote-mediawiki
index b809792..0b32d18 100755
--- a/contrib/mw-to-git/git-remote-mediawiki
+++ b/contrib/mw-to-git/git-remote-mediawiki
@@ -76,8 +76,10 @@ my $wiki_login = run_git("config --get remote.". $remotename .".mwLogin");
 # inside a remote helper, so our stdin is connect to git, not to a
 # terminal.
 my $wiki_passwd = run_git("config --get remote.". $remotename .".mwPassword");
+my $wiki_domain = run_git("config --get remote.". $remotename .".mwDomain");
 chomp($wiki_login);
 chomp($wiki_passwd);
+chomp($wiki_domain);
 
 # Import only last revisions (both for clone and fetch)
 my $shallow_import = run_git("config --get --bool remote.". $remotename .".shallow");
@@ -158,6 +160,7 @@ sub mw_connect_maybe {
 		if (!$mediawiki->login({
 			lgname => $wiki_login,
 			lgpassword => $wiki_passwd,
+			lgdomain => $wiki_domain,
 		})) {
 			print STDERR "Failed to log in mediawiki user \"$wiki_login\" on $url\n";
 			print STDERR "(error " .
-- 
1.7.7.rc0.75.g56f27

^ permalink raw reply related

* Re: [PATCH] Docs: git checkout --orphan: `root commit' and `branch head'
From: Matthieu Moy @ 2011-09-28 13:45 UTC (permalink / raw)
  To: Michael Witten
  Cc: Junio C Hamano, Jeff King, Philip Oakley, Eric Raible,
	Michael J Gruber, Carlos Martín Nieto, vra5107, git
In-Reply-To: <CAMOZ1BvL85xsQpZdez4VJ+dH4NoQ9RkthHY9OsmdnnaZ_tFnFg@mail.gmail.com>

Michael Witten <mfwitten@gmail.com> writes:

> Well, I think Jeff already proferred a solution. We could have:
>
>   git commit --no-parent
[...]

Appart from the safety objections, is the "root commit" senario common
enough to deserve appearing in the user-interface for both "commit" and
"checkout"?

I think "git commit -h" is scary enough as it is ...

-- 
Matthieu Moy
http://www-verimag.imag.fr/~moy/

^ permalink raw reply

* Re: [PATCH] git-send-email.perl: expand filename of aliasesfile
From: Matthieu Moy @ 2011-09-28 13:42 UTC (permalink / raw)
  To: git; +Cc: Junio C Hamano, Eric Wong
In-Reply-To: <20110928131307.GB12586@laptop>

Cord Seele <cowose@googlemail.com> writes:

> -		open my $fh, '<', $file or die "opening $file: $!\n";
> +		open my $fh, '<', glob($file) or die "opening $file: $!\n";

That'd be cleaner to use

git config --path sendemail.aliasesfile

to let Git do the right expansion, in a way consistant with other places
of Git.

In practice, that would imply adding %config_path_settings like the
existing %config_bool_settings, and add config_path to Git.pm (again,
similarly to config_bool).

-- 
Matthieu Moy
http://www-verimag.imag.fr/~moy/

^ permalink raw reply

* Re: [PATCH] Docs: git checkout --orphan: `root commit' and `branch head'
From: Michael Witten @ 2011-09-28 13:40 UTC (permalink / raw)
  To: Junio C Hamano
  Cc: Jeff King, Philip Oakley, Eric Raible, Michael J Gruber,
	Carlos Martín Nieto, vra5107, git
In-Reply-To: <7vpqiltsky.fsf@alter.siamese.dyndns.org>

On Wed, Sep 28, 2011 at 00:32, Junio C Hamano <gitster@pobox.com> wrote:
> Jeff King <peff@peff.net> writes:
>
>> On Tue, Sep 27, 2011 at 11:28:14PM +0000, Michael Witten wrote:
>>
>>>   With "git commit --no-parent", you would be altering the current
>>>   branch head, which means you are potentially leaving as a dangling
>>>   commit the commit to which that branch head originally pointed.
>>>   I.e., it is about as dangerous as "git reset --hard <new_root_commit>",
>>>   something for which we do NOT provide any protection.
>>
>> Didn't I already mention that example? And then say that I think the
>> lack of protection there has been the source of a lot of confusion and
>> hardship?
>>
>> Repeating the problems of "git reset" does not seem like a good idea to
>> me. Especially not with a command like "commit", which is usually very
>> safe.
>>
>> That being said, I did say in my last email that one option would be for
>> the documentation to be very clear about leaving the old history
>> dangling. That at least keeps clueless people from stumbling into using
>> the option accidentally.
>
> Both of you are right and I agree "commit --root" is a bad idea (I can
> change my mind ;-). Especially it is rare (and I would even say it should
> be discouraged) to create a new root commit in a repository that already
> has history, we should try to make it _very_ hard to lose history by
> mistake, even though that means creating a new root commit has to be done
> as a multi-step process (e.g. "checkout --orphan" to dissociate the new
> state from the current history and then "commit").
>
> Thanks for a bit of sanity.

Well, I think Jeff already proferred a solution. We could have:

  git commit --no-parent

act like:

  git branch -d

in that it would require a "--force" when the commit to which the
current branch head points would be left dangling. In fact, we
could go one step further:

  git commit --no-parent

should require "--force" unless there exists another branch head
that points to the exact same commit as the current branch head; this
would tacitly enforce the notion that a new branch should be created
prior to the use of "--no-parent".

^ permalink raw reply

* [PATCH] git-send-email.perl: expand filename of aliasesfile
From: Cord Seele @ 2011-09-28 13:13 UTC (permalink / raw)
  To: git; +Cc: Junio C Hamano, Eric Wong

Allow config variable sendemail.aliasesfile to contain a tilde, i.e.
make ~/.mutt/aliases work.

Signed-off-by: Cord Seele <cowose@gmail.com>
---
 git-send-email.perl |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/git-send-email.perl b/git-send-email.perl
index 98ab33a..b50b35f 100755
--- a/git-send-email.perl
+++ b/git-send-email.perl
@@ -481,7 +481,7 @@ my %parse_alias = (
 
 if (@alias_files and $aliasfiletype and defined $parse_alias{$aliasfiletype}) {
 	foreach my $file (@alias_files) {
-		open my $fh, '<', $file or die "opening $file: $!\n";
+		open my $fh, '<', glob($file) or die "opening $file: $!\n";
 		$parse_alias{$aliasfiletype}->($fh);
 		close $fh;
 	}
-- 
1.7.6.4.dirty


-- Cord

^ permalink raw reply related

* Re: subversion-perl missing
From: Jakub Narebski @ 2011-09-28 12:59 UTC (permalink / raw)
  To: Georg-Johann Lay; +Cc: Christian Couder, git
In-Reply-To: <4E82F18E.9080304@gjlay.de>

On Wed, 28 Sep 2011, Georg-Johann Lay wrote:
> Jakub Narebski schrieb:
>> Georg-Johann Lay writes:
>>> Christian Couder schrieb:
>>>> On Mon, Sep 26, 2011 at 1:48 PM, Georg-Johann Lay <spam@spam.com> wrote:
 
>>>>> Where do I have to go to get the svn+perl stuff? Couldn't locate anything like
>>>>> that in subversion.tigris.org, so that I am stuck and need some hints on how to
>>>>> proceed.
>>>>
>>>> Perhaps you can try to install this module from CPAN:
>>>>
>>>> http://search.cpan.org/~mschwern/Alien-SVN-v1.6.12.1/
>>>>
>>>> or from it's github repo:
>>>>
>>>> https://github.com/schwern/alien-svn
>>>
>>> thanks for that hint.
>>>
>>> After getting that piece of software, running ./Build.PL and ./Build I just
>>> don't know what to do next.  The README doesn't say anything about how to use
>>> the built modules or how to do an install.
>> 
>> If you don't have admin privileges on the box, the best solution would
>> be to use local::lib[1] to install Perl modules in your home directory
>> for you (#perl IRC channel on FreeNode, or perlmonks are really helpful).
>> 
>> I really recommend it, together with cpanm[2] (which can configure
>> local::lib for you, via --local-lib option), though the latter is not
>> necessary.
>> 
>> [1]: http://search.cpan.org/~apeiron/local-lib-1.008004/lib/local/lib.pm
>> [2]: http://search.cpan.org/~miyagawa/App-cpanminus-1.4008/bin/cpanm
>> 
>> 
>> If you have admin privileges, I think the best solution would be
>> either find repository which has subversion-perl that matches your
>> version of Subversion, or compile subversion-perl from a source
>> package... though this might be more difficult, it has advantage of
>> being in package management.
>>  
>>> As git-svn complains
>>>
>>> ...Can't locate SVN/Core.pm in @INC (@INC contains: ...
>>>
>>> and
>>>
>>>  schwern-alien-svn-9298884>find . -name 'Core.pm'
>>> ./src/subversion/subversion/bindings/swig/perl/native/Core.pm
>>> ./src/subversion/subversion/bindings/swig/perl/native/blib/lib/SVN/Core.pm
>>>
>>> the question is how to do the final trick of telling git how to use Core.pm
>>> (and which of the two?) and do the connexion between git and alien-svn.
>>>
>>> Sorry for the noob questions, never used perl or git before...
>> 
>> You have to install subversion-perl somewhere, not only build it.
> 
> Unfortunately, that package comes without hints on doing that.
> 
> As far as I understand, alien-svn comes with SVN sources which it uses for its
> own perl packages to provide svn stuff to perl, but don't install/build new svn
> version.

Step by step instruction.

1. Follow instructions on local::lib manpage
   http://search.cpan.org/perldoc?local::lib

   c.f. http://perl.jonallen.info/writing/articles/install-perl-modules-without-root

2. (Optional). Follow instructions on cpanm manpage, e.g. http://cpanmin.us
   or http://search.cpan.org/perldoc?cpanm

3. Install Alien::SVN from CPAN using 'cpan' client or 'cpanm', e.g.

   $ cpanm Alien::SVN

Now you are able to install Perl modules in your home directory.
-- 
Jakub Narebski
Poland

^ permalink raw reply

* RE: Lack of detached signatures
From: Joseph Parmelee @ 2011-09-28 12:36 UTC (permalink / raw)
  To: Carlos Martín Nieto
  Cc: Olsen, Alan R, Michael Witten, Junio C Hamano,
	git@vger.kernel.org
In-Reply-To: <1317195719.30267.4.camel@bee.lab.cmartin.tk>

[-- Attachment #1: Type: TEXT/PLAIN, Size: 3778 bytes --]


On Wed, 28 Sep 2011, Carlos Martín Nieto wrote:

> On Wed, 2011-09-28 at 04:17 +0000, Olsen, Alan R wrote:
>> [Sorry for the top posting. Outlook is evil.]
>>
>> Detached signatures are created with gpg, not git.
>
> Git delegates all the signing business to gpg.
>
>>
>> What I would like to see in git would be signed commits. I have looked
>
> Every single commit? That sounds very heavy. You might want to look at
> signed pushes (signed push certificates), which were discussed in the
> list some time the kernel.org intrusion.
>
> Due to the way git calculates the hash for each object, signing a tag
> means that you also sign every single commit up to that point (with all
> their tree and blob objects).
>
>>  at what it would take to make it work, but I don't have all the
>> details worked out. (Certain merges and cherry-picks would not work
>> very well.)
>
> This is precisely because of the cryptographic hash that is used to make
> sure that history doesn't get changed.
>
>   cmn
>
>>
>> -----Original Message-----
>> From: git-owner@vger.kernel.org [mailto:git-owner@vger.kernel.org] On Behalf Of Michael Witten
>> Sent: Tuesday, September 27, 2011 5:08 PM
>> To: Junio C Hamano
>> Cc: Joseph Parmelee; git@vger.kernel.org
>> Subject: Re: Lack of detached signatures
>>
>> On Wed, Sep 28, 2011 at 00:03, Junio C Hamano <gitster@pobox.com> wrote:
>>> Joseph Parmelee <jparmele@wildbear.com> writes:
>>>
>>>> Under the present circumstances, and particularly considering the
>>>> sensitivity of the git code itself, I would suggest that you implement
>>>> signed detached digital signatures on all release tarballs.
>>>
>>> Well, signed tags are essentially detached signatures. People can verify
>>> tarballs against them if they wanted to, although it is a bit cumbersome.
>>
>> Aren't tarballs used to get git on machines that don't yet have git?
>> --
>> To unsubscribe from this list: send the line "unsubscribe git" in
>> the body of a message to majordomo@vger.kernel.org
>> More majordomo info at  http://vger.kernel.org/majordomo-info.html
>> NrybX?v^)?{.n+?\x17?}?z&j:+v\azZ++zfh~iz\x1ew?&)?^[f
>
>
>

There is confusion here between the repository and the tarball.  Once you
have produced the tarball there is NO cryptographic protection against
forgeries unless you sign it with GPG.  That is my point: either produce
signatures with the tarballs, or don't provide them at all and force users
to clone the repository.  Git itself provides internal crytopgraphic
protection with its commit tags.

The stability of the head depends on the policies followed by the developers
and cannot be known by users not intimately involved in the development.  In
any event if there is a tarball most users assume that it represents a more
stable state of the repository than the head and they will tend to use it,
even if they already have a version of the code, instead of cloning the
repository directly.

Git, and its signing key, are high-value targets for the bad guys, even
higher than the kernel itself.  I hope you will give just a moment's thought
to the damage that will be done if bad guys succeed in a DNS poisoning
attack and succeed in passing off a phony git tarball with a back door in
the git code itself to a major code project.  Any code produced in a
repository using that phony version of git can then itself be corrupted.

It is only because kernel.org exercised due diligence in the production of
tags and signatures on all their tarballs that the kernel code itself
withstood their recent intrusion.  I suspect that their signing key was not
so lucky and needs to be changed.  The situation now is really dangerous
with various important projects scattered about, including git, which are
being operated without proper consideration of security.

^ permalink raw reply

* [PATCH v3] send-email: auth plain/login fix
From: Zbigniew Jędrzejewski-Szmek @ 2011-09-28 10:26 UTC (permalink / raw)
  To: gitster, joe, git; +Cc: Zbigniew Jędrzejewski-Szmek
In-Reply-To: <m3fwjjp69m.fsf@localhost.localdomain>

git send-email was not authenticating properly when communicating over
TLS with a server supporting only AUTH PLAIN and AUTH LOGIN. This is
e.g. the standard server setup under debian with exim4 and probably
everywhere where system accounts are used.

The problem (only?) exists when libauthen-sasl-cyrus-perl
(Authen::SASL::Cyrus) is installed. Importing Authen::SASL::Perl
makes Authen::SASL use the perl implementation which works
better.

The solution is based on this forum thread:
http://www.perlmonks.org/?node_id=904354.

This patch is tested by sending it :)

Before:
Net::SMTP>>> Net::SMTP(2.31)
Net::SMTP>>>   Net::Cmd(2.29)
Net::SMTP>>>     Exporter(5.64_01)
Net::SMTP>>>   IO::Socket::INET(1.31)
Net::SMTP>>>     IO::Socket(1.31)
Net::SMTP>>>       IO::Handle(1.28)
...
Net::SMTP=GLOB(0x238f668)>>> STARTTLS
Net::SMTP=GLOB(0x238f668)<<< 220 2.0.0 Ready to start TLS
Net::SMTP::SSL=GLOB(0x238f668)>>> EHLO localhost.localdomain
Net::SMTP::SSL=GLOB(0x238f668)<<< 250-yyy.yyy.yyy Hello xxx.xxx [xxx.xxx.xxx.xxx], pleased to meet you
Net::SMTP::SSL=GLOB(0x238f668)<<< 250-ENHANCEDSTATUSCODES
Net::SMTP::SSL=GLOB(0x238f668)<<< 250-PIPELINING
Net::SMTP::SSL=GLOB(0x238f668)<<< 250-8BITMIME
Net::SMTP::SSL=GLOB(0x238f668)<<< 250-SIZE 80000000
Net::SMTP::SSL=GLOB(0x238f668)<<< 250-DSN
Net::SMTP::SSL=GLOB(0x238f668)<<< 250-AUTH=LOGIN PLAIN
Net::SMTP::SSL=GLOB(0x238f668)<<< 250-AUTH LOGIN PLAIN
Net::SMTP::SSL=GLOB(0x238f668)<<< 250-DELIVERBY
Net::SMTP::SSL=GLOB(0x238f668)<<< 250 HELP
Password:
Net::SMTP::SSL=GLOB(0x238f668)>>> AUTH
Net::SMTP::SSL=GLOB(0x238f668)<<< 501 5.5.2 AUTH mechanism must be specified
5.5.2 AUTH mechanism must be specified

After:
Net::SMTP=GLOB(0x1ac4a60)>>> STARTTLS
Net::SMTP=GLOB(0x1ac4a60)<<< 220 2.0.0 Ready to start TLS
Net::SMTP::SSL=GLOB(0x1ac4a60)>>> EHLO localhost.localdomain
Net::SMTP::SSL=GLOB(0x1ac4a60)<<< 250-yyy.yyy.yyy Hello xxx.xxx [xxx.xxx.xxx.xxx], pleased to meet you
Net::SMTP::SSL=GLOB(0x1ac4a60)<<< 250-ENHANCEDSTATUSCODES
Net::SMTP::SSL=GLOB(0x1ac4a60)<<< 250-PIPELINING
Net::SMTP::SSL=GLOB(0x1ac4a60)<<< 250-8BITMIME
Net::SMTP::SSL=GLOB(0x1ac4a60)<<< 250-SIZE 80000000
Net::SMTP::SSL=GLOB(0x1ac4a60)<<< 250-DSN
Net::SMTP::SSL=GLOB(0x1ac4a60)<<< 250-AUTH=LOGIN PLAIN
Net::SMTP::SSL=GLOB(0x1ac4a60)<<< 250-AUTH LOGIN PLAIN
Net::SMTP::SSL=GLOB(0x1ac4a60)<<< 250-DELIVERBY
Net::SMTP::SSL=GLOB(0x1ac4a60)<<< 250 HELP
Password:
Net::SMTP::SSL=GLOB(0x1ac4a60)>>> AUTH LOGIN
Net::SMTP::SSL=GLOB(0x1ac4a60)<<< 334 VXNlcm5hbWU6
Net::SMTP::SSL=GLOB(0x1ac4a60)>>> emJ5c3plaw==
Net::SMTP::SSL=GLOB(0x1ac4a60)<<< 334 UGFzc3dvcmQ6
Net::SMTP::SSL=GLOB(0x1ac4a60)>>> dGVzdA==
Net::SMTP::SSL=GLOB(0x1ac4a60)<<< 535 5.7.0 authentication failed
5.7.0 authentication failed

The password is incorrect in this snippet, but the protocol works correctly.

Signed-off-by: Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>
---
v3:  - the import is performed only if it will be used, and failure is ignored

 git-send-email.perl |    4 ++++
 1 files changed, 4 insertions(+), 0 deletions(-)

diff --git a/git-send-email.perl b/git-send-email.perl
index 37dfbe7..dbc435a 100755
--- a/git-send-email.perl
+++ b/git-send-email.perl
@@ -1098,6 +1098,10 @@ X-Mailer: git-send-email $gitversion
 		}
 
 		if (defined $smtp_authuser) {
+			eval {
+				require Authen::SASL;
+				Authen::SASL->import(qw(Perl));
+			};
 
 			if (!defined $smtp_authpass) {
 
-- 
1.7.6

^ permalink raw reply related


This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox