# messages confusing

16 messages from 2010-07-06 to 2010-07-10. Participants: Nicolas Sebrecht, Junio C Hamano, Wincent Colaiuta, Ævar Arnfjörð Bjarmason.
Thread: https://gitlist.dev/t/24299

## Nicolas Sebrecht, 2010-07-06 05:35

Subject: messages confusing
Message-ID: <20100706053543.GA13054@vidovic>
URL: https://gitlist.dev/e/20100706053543.GA13054%40vidovic

```
Hi all,

I had those messages today

  % git merge origin/master
    Already uptodate!
    Merge made by recursive.
  %

with git version 1.7.2.rc1.210.g7b476 and I wonder if it is really
intended.  It did create an empty merge commit but I find both messages
together a bit confusing here.  Why would Git merge if uptodate?

I don't think I will have time to investigate in the comming weeks but
you should be able to reproduce it by following these steps (it is by
now, at least):

  % git clone git://github.com/nvie/gitflow.git
  % cd gitflow
  % git merge origin/master
  %

Thanks,
  
-- 
Nicolas Sebrecht

```

## Wincent Colaiuta, 2010-07-06 05:53

Subject: Re: messages confusing
Message-ID: <ACE6C748-1F26-473B-BC69-33C59A3969BD@wincent.com>
URL: https://gitlist.dev/e/ACE6C748-1F26-473B-BC69-33C59A3969BD%40wincent.com
In-Reply-To: <20100706053543.GA13054@vidovic>

```
El 06/07/2010, a las 07:35, Nicolas Sebrecht escribió:

> Hi all,
> 
> I had those messages today
> 
>  % git merge origin/master
>    Already uptodate!
>    Merge made by recursive.
>  %
> 
> with git version 1.7.2.rc1.210.g7b476 and I wonder if it is really
> intended.  It did create an empty merge commit but I find both messages
> together a bit confusing here.  Why would Git merge if uptodate?

In any case, "uptodate" should be written as "up-to-date" for consistency with other user-visible messages in Git and in the docs.

Wincent

```

## Junio C Hamano, 2010-07-06 06:21

Subject: Re: messages confusing
Message-ID: <7v630t5dvo.fsf@alter.siamese.dyndns.org>
URL: https://gitlist.dev/e/7v630t5dvo.fsf%40alter.siamese.dyndns.org
In-Reply-To: <20100706053543.GA13054@vidovic>

```
Nicolas Sebrecht <nicolas.s.dev@gmx.fr> writes:

> I had those messages today
>
>   % git merge origin/master
>     Already uptodate!
>     Merge made by recursive.
>   %

This is quite an old message; I don't think it has much to do with 1.7-ness
of your version.

The first "uptodate" refers to your tree state being up-to-date.  You
already had the necessary changes the other history wanted you to
have---they were acquired in your history before you started this merge by
some other means.  Perhaps merging from other trees, or picking up
equivalent patches from mailing list, etc.

A merge commit is still created in this case, in order to record the fact
that everything origin/master wanted to do to your history has already
been reconciled to your history.  Otherwise "git log ..origin/master" will
still show commits your history does not have.

```

## Nicolas Sebrecht, 2010-07-06 08:58

Subject: Re: messages confusing
Message-ID: <20100706085844.GB13054@vidovic>
URL: https://gitlist.dev/e/20100706085844.GB13054%40vidovic
In-Reply-To: <7v630t5dvo.fsf@alter.siamese.dyndns.org>

```
The 05/07/10, Junio C Hamano wrote:
> 
> This is quite an old message; I don't think it has much to do with 1.7-ness
> of your version.
> 
> The first "uptodate" refers to your tree state being up-to-date.  You
> already had the necessary changes the other history wanted you to
> have---they were acquired in your history before you started this merge by
> some other means.  Perhaps merging from other trees, or picking up
> equivalent patches from mailing list, etc.

This is what I was guessing but wanted to be sure that the resulting
messages were intended as is.

> A merge commit is still created in this case, in order to record the fact
> that everything origin/master wanted to do to your history has already
> been reconciled to your history.  Otherwise "git log ..origin/master" will
> still show commits your history does not have.

Thanks for the explanations.

-- 
Nicolas Sebrecht

```

## Nicolas Sebrecht, 2010-07-06 09:13

Subject: [PATCH] use "up-to-date" in messages instead of "uptodate" for consistency
Message-ID: <7012ea639b8beddcd42eceff0898e33ce7c455e9.1278407491.git.nicolas.s.dev@gmx.fr>
URL: https://gitlist.dev/e/7012ea639b8beddcd42eceff0898e33ce7c455e9.1278407491.git.nicolas.s.dev%40gmx.fr
In-Reply-To: <ACE6C748-1F26-473B-BC69-33C59A3969BD@wincent.com>

```
Signed-off-by: Nicolas Sebrecht <nicolas.s.dev@gmx.fr>
---
 merge-recursive.c |    2 +-
 unpack-trees.c    |    4 ++--
 2 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/merge-recursive.c b/merge-recursive.c
index 856e98c..fb6aa4a 100644
--- a/merge-recursive.c
+++ b/merge-recursive.c
@@ -1214,7 +1214,7 @@ int merge_trees(struct merge_options *o,
 	}
 
 	if (sha_eq(common->object.sha1, merge->object.sha1)) {
-		output(o, 0, "Already uptodate!");
+		output(o, 0, "Already up-to-date!");
 		*result = head;
 		return 1;
 	}
diff --git a/unpack-trees.c b/unpack-trees.c
index 8cf0da3..024846e 100644
--- a/unpack-trees.c
+++ b/unpack-trees.c
@@ -22,7 +22,7 @@ static struct unpack_trees_error_msgs unpack_plumbing_errors = {
 	"Entry '%s' would be overwritten by merge. Cannot merge.",
 
 	/* not_uptodate_file */
-	"Entry '%s' not uptodate. Cannot merge.",
+	"Entry '%s' not up-to-date. Cannot merge.",
 
 	/* not_uptodate_dir */
 	"Updating '%s' would lose untracked files in it",
@@ -34,7 +34,7 @@ static struct unpack_trees_error_msgs unpack_plumbing_errors = {
 	"Entry '%s' overlaps with '%s'.  Cannot bind.",
 
 	/* sparse_not_uptodate_file */
-	"Entry '%s' not uptodate. Cannot update sparse checkout.",
+	"Entry '%s' not up-to-date. Cannot update sparse checkout.",
 
 	/* would_lose_orphaned */
 	"Working tree file '%s' would be %s by sparse checkout update.",
-- 
1.7.2.rc1.210.g7b476

```

## Ævar Arnfjörð Bjarmason, 2010-07-06 12:47

Subject: Re: [PATCH] use "up-to-date" in messages instead of "uptodate" for consistency
Message-ID: <AANLkTimvQ8_SKa_VSvQk1_c3aRVv1lZCMYNOVLXBuC4W@mail.gmail.com>
URL: https://gitlist.dev/e/AANLkTimvQ8_SKa_VSvQk1_c3aRVv1lZCMYNOVLXBuC4W%40mail.gmail.com
In-Reply-To: <7012ea639b8beddcd42eceff0898e33ce7c455e9.1278407491.git.nicolas.s.dev@gmx.fr>

```
Did you run the tests after applying this patch? This looks like it would break:

t/t7110-reset-merge.sh
176:    grep file1 err.log | grep "not uptodate"
192:    grep file1 err.log | grep "not uptodate"

```

## Nicolas Sebrecht, 2010-07-06 15:55

Subject: [PATCH v2] use "up-to-date" instead of "uptodate" for consistency
Message-ID: <b49995cd151b36cfff5231b28f5e8ff3970c14a2.1278431239.git.nicolas.s.dev@gmx.fr>
URL: https://gitlist.dev/e/b49995cd151b36cfff5231b28f5e8ff3970c14a2.1278431239.git.nicolas.s.dev%40gmx.fr
In-Reply-To: <AANLkTimvQ8_SKa_VSvQk1_c3aRVv1lZCMYNOVLXBuC4W@mail.gmail.com>

```
Signed-off-by: Nicolas Sebrecht <nicolas.s.dev@gmx.fr>
---

The 06/07/10, Ævar Arnfjörð Bjarmason wrote:

> Did you run the tests after applying this patch? This looks like it would break:
> 
> t/t7110-reset-merge.sh
> 176:    grep file1 err.log | grep "not uptodate"
> 192:    grep file1 err.log | grep "not uptodate"

I forgot about them. Thanks for a reminder.


 Documentation/git-checkout.txt |    2 +-
 merge-recursive.c              |    2 +-
 t/t7110-reset-merge.sh         |    4 ++--
 unpack-trees.c                 |    4 ++--
 4 files changed, 6 insertions(+), 6 deletions(-)

diff --git a/Documentation/git-checkout.txt b/Documentation/git-checkout.txt
index 261dd90..c04eceb 100644
--- a/Documentation/git-checkout.txt
+++ b/Documentation/git-checkout.txt
@@ -263,7 +263,7 @@ the above checkout would fail like this:
 +
 ------------
 $ git checkout mytopic
-fatal: Entry 'frotz' not uptodate. Cannot merge.
+fatal: Entry 'frotz' not up-to-date. Cannot merge.
 ------------
 +
 You can give the `-m` flag to the command, which would try a
diff --git a/merge-recursive.c b/merge-recursive.c
index 856e98c..fb6aa4a 100644
--- a/merge-recursive.c
+++ b/merge-recursive.c
@@ -1214,7 +1214,7 @@ int merge_trees(struct merge_options *o,
 	}
 
 	if (sha_eq(common->object.sha1, merge->object.sha1)) {
-		output(o, 0, "Already uptodate!");
+		output(o, 0, "Already up-to-date!");
 		*result = head;
 		return 1;
 	}
diff --git a/t/t7110-reset-merge.sh b/t/t7110-reset-merge.sh
index 70cdd8e..6a5f78d 100755
--- a/t/t7110-reset-merge.sh
+++ b/t/t7110-reset-merge.sh
@@ -173,7 +173,7 @@ test_expect_success 'reset --merge fails with changes in file it touches' '
     sed -e "s/line 1/changed line 1/" <file1 >file3 &&
     mv file3 file1 &&
     test_must_fail git reset --merge HEAD^ 2>err.log &&
-    grep file1 err.log | grep "not uptodate"
+    grep file1 err.log | grep "not up-to-date"
 '
 
 # The next test will test the following:
@@ -189,7 +189,7 @@ test_expect_success 'reset --keep fails with changes in file it touches' '
     sed -e "s/line 1/changed line 1/" <file1 >file3 &&
     mv file3 file1 &&
     test_must_fail git reset --keep HEAD^ 2>err.log &&
-    grep file1 err.log | grep "not uptodate"
+    grep file1 err.log | grep "not up-to-date"
 '
 
 test_expect_success 'setup 3 different branches' '
diff --git a/unpack-trees.c b/unpack-trees.c
index 8cf0da3..024846e 100644
--- a/unpack-trees.c
+++ b/unpack-trees.c
@@ -22,7 +22,7 @@ static struct unpack_trees_error_msgs unpack_plumbing_errors = {
 	"Entry '%s' would be overwritten by merge. Cannot merge.",
 
 	/* not_uptodate_file */
-	"Entry '%s' not uptodate. Cannot merge.",
+	"Entry '%s' not up-to-date. Cannot merge.",
 
 	/* not_uptodate_dir */
 	"Updating '%s' would lose untracked files in it",
@@ -34,7 +34,7 @@ static struct unpack_trees_error_msgs unpack_plumbing_errors = {
 	"Entry '%s' overlaps with '%s'.  Cannot bind.",
 
 	/* sparse_not_uptodate_file */
-	"Entry '%s' not uptodate. Cannot update sparse checkout.",
+	"Entry '%s' not up-to-date. Cannot update sparse checkout.",
 
 	/* would_lose_orphaned */
 	"Working tree file '%s' would be %s by sparse checkout update.",
-- 
1.7.2.rc1.212.g4c287

```

## Junio C Hamano, 2010-07-07 05:28

Subject: Re: [PATCH v2] use "up-to-date" instead of "uptodate" for consistency
Message-ID: <7v8w5n2744.fsf@alter.siamese.dyndns.org>
URL: https://gitlist.dev/e/7v8w5n2744.fsf%40alter.siamese.dyndns.org
In-Reply-To: <b49995cd151b36cfff5231b28f5e8ff3970c14a2.1278431239.git.nicolas.s.dev@gmx.fr>

```
Nicolas Sebrecht <nicolas.s.dev@gmx.fr> writes:

> @@ -22,7 +22,7 @@ static struct unpack_trees_error_msgs unpack_plumbing_errors = {
>  	"Entry '%s' would be overwritten by merge. Cannot merge.",
>  
>  	/* not_uptodate_file */
> -	"Entry '%s' not uptodate. Cannot merge.",
> +	"Entry '%s' not up-to-date. Cannot merge.",
>  
>  	/* not_uptodate_dir */
>  	"Updating '%s' would lose untracked files in it",
> @@ -34,7 +34,7 @@ static struct unpack_trees_error_msgs unpack_plumbing_errors = {
>  	"Entry '%s' overlaps with '%s'.  Cannot bind.",
>  
>  	/* sparse_not_uptodate_file */
> -	"Entry '%s' not uptodate. Cannot update sparse checkout.",
> +	"Entry '%s' not up-to-date. Cannot update sparse checkout.",
>  
>  	/* would_lose_orphaned */
>  	"Working tree file '%s' would be %s by sparse checkout update.",

What word do you see before "errors" on the hunk comment line?

```

## Nicolas Sebrecht, 2010-07-07 05:46

Subject: [PATCH v2] Re: use "up-to-date" instead of "uptodate" for consistency
Message-ID: <20100707054621.GC13054@vidovic>
URL: https://gitlist.dev/e/20100707054621.GC13054%40vidovic
In-Reply-To: <7v8w5n2744.fsf@alter.siamese.dyndns.org>

```
The 06/07/10, Junio C Hamano wrote:
> Nicolas Sebrecht <nicolas.s.dev@gmx.fr> writes:
> 
> > @@ -22,7 +22,7 @@ static struct unpack_trees_error_msgs unpack_plumbing_errors = {
> 
> What word do you see before "errors" on the hunk comment line?

So you'd rather not touching it? Or wait until the next release cycle?
Or a better commit message? Anything else?

-- 
Nicolas Sebrecht

```

## Junio C Hamano, 2010-07-07 07:18

Subject: Re: [PATCH v2] Re: use "up-to-date" instead of "uptodate" for consistency
Message-ID: <7vbpajzro3.fsf@alter.siamese.dyndns.org>
URL: https://gitlist.dev/e/7vbpajzro3.fsf%40alter.siamese.dyndns.org
In-Reply-To: <20100707054621.GC13054@vidovic>

```
Nicolas Sebrecht <nicolas.s.dev@gmx.fr> writes:

> The 06/07/10, Junio C Hamano wrote:
>> Nicolas Sebrecht <nicolas.s.dev@gmx.fr> writes:
>> 
>> > @@ -22,7 +22,7 @@ static struct unpack_trees_error_msgs unpack_plumbing_errors = {
>> 
>> What word do you see before "errors" on the hunk comment line?
>
> So you'd rather not touching it?

Well, "'d rather" is actually too weak a statement.

The "struct unpack_trees_error_msgs" mechanism was introduced so that we
can change the Porcelain level messages without breaking the plumbing API,
which these messages are part of.  Please see 8ccba00 (unpack-trees: allow
Porcelain to give different error messages, 2008-05-17) and fadd069
(merge-recursive: give less scary messages when merge did not start,
2009-09-07) for backstory.

```

## Nicolas Sebrecht, 2010-07-07 07:54

Subject: [PATCH v3] merge-recursive: use "up-to-date" instead of "uptodate" in error message for consistency
Message-ID: <9aea70210996b395f5fc04ae48a372f9b51ba182.1278489069.git.nicolas.s.dev@gmx.fr>
URL: https://gitlist.dev/e/9aea70210996b395f5fc04ae48a372f9b51ba182.1278489069.git.nicolas.s.dev%40gmx.fr
In-Reply-To: <7vbpajzro3.fsf@alter.siamese.dyndns.org>

```
Signed-off-by: Nicolas Sebrecht <nicolas.s.dev@gmx.fr>
---

The 07/07/10, Junio C Hamano wrote:

> The "struct unpack_trees_error_msgs" mechanism was introduced so that we
> can change the Porcelain level messages without breaking the plumbing API,
> which these messages are part of.  Please see 8ccba00 (unpack-trees: allow
> Porcelain to give different error messages, 2008-05-17) and fadd069
> (merge-recursive: give less scary messages when merge did not start,
> 2009-09-07) for backstory.

Oh, thanks. I was unaware of this mechanism and didn't care about what I was
touching.

 Documentation/git-checkout.txt |    2 +-
 merge-recursive.c              |    2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/Documentation/git-checkout.txt b/Documentation/git-checkout.txt
index 261dd90..c04eceb 100644
--- a/Documentation/git-checkout.txt
+++ b/Documentation/git-checkout.txt
@@ -263,7 +263,7 @@ the above checkout would fail like this:
 +
 ------------
 $ git checkout mytopic
-fatal: Entry 'frotz' not uptodate. Cannot merge.
+fatal: Entry 'frotz' not up-to-date. Cannot merge.
 ------------
 +
 You can give the `-m` flag to the command, which would try a
diff --git a/merge-recursive.c b/merge-recursive.c
index 856e98c..fb6aa4a 100644
--- a/merge-recursive.c
+++ b/merge-recursive.c
@@ -1214,7 +1214,7 @@ int merge_trees(struct merge_options *o,
 	}
 
 	if (sha_eq(common->object.sha1, merge->object.sha1)) {
-		output(o, 0, "Already uptodate!");
+		output(o, 0, "Already up-to-date!");
 		*result = head;
 		return 1;
 	}
-- 
1.7.2.rc1.214.g95a9e

```

## Junio C Hamano, 2010-07-08 00:26

Subject: Re: [PATCH v3] merge-recursive: use "up-to-date" instead of "uptodate" in error message for consistency
Message-ID: <7vd3uystsh.fsf@alter.siamese.dyndns.org>
URL: https://gitlist.dev/e/7vd3uystsh.fsf%40alter.siamese.dyndns.org
In-Reply-To: <9aea70210996b395f5fc04ae48a372f9b51ba182.1278489069.git.nicolas.s.dev@gmx.fr>

```
Nicolas Sebrecht <nicolas.s.dev@gmx.fr> writes:

> Signed-off-by: Nicolas Sebrecht <nicolas.s.dev@gmx.fr>
> ---
>
> The 07/07/10, Junio C Hamano wrote:
>
>> The "struct unpack_trees_error_msgs" mechanism was introduced so that we
>> can change the Porcelain level messages without breaking the plumbing API,
>> which these messages are part of.  Please see 8ccba00 (unpack-trees: allow
>> Porcelain to give different error messages, 2008-05-17) and fadd069
>> (merge-recursive: give less scary messages when merge did not start,
>> 2009-09-07) for backstory.
>
> Oh, thanks. I was unaware of this mechanism and didn't care about what I was
> touching.

I suspect that the documentation patch talks about a nonexistent reality.
See 8ccba00 again ;-)

```

## Nicolas Sebrecht, 2010-07-09 20:27

Subject: [PATCH 1/2] checkout: accord documentation to what git does
Message-ID: <33e9dcc468b1e1ed18a180046f5d4c135921c7ab.1278707023.git.nicolas.s.dev@gmx.fr>
URL: https://gitlist.dev/e/33e9dcc468b1e1ed18a180046f5d4c135921c7ab.1278707023.git.nicolas.s.dev%40gmx.fr
In-Reply-To: <7vd3uystsh.fsf@alter.siamese.dyndns.org>

```
Signed-off-by: Nicolas Sebrecht <nicolas.s.dev@gmx.fr>
---

The 07/07/10, Junio C Hamano wrote:

> Nicolas Sebrecht <nicolas.s.dev@gmx.fr> writes:
> > Signed-off-by: Nicolas Sebrecht <nicolas.s.dev@gmx.fr>
> > ---
> >
> > The 07/07/10, Junio C Hamano wrote:
> >
> >> The "struct unpack_trees_error_msgs" mechanism was introduced so that we
> >> can change the Porcelain level messages without breaking the plumbing API,
> >> which these messages are part of.  Please see 8ccba00 (unpack-trees: allow
> >> Porcelain to give different error messages, 2008-05-17) and fadd069
> >> (merge-recursive: give less scary messages when merge did not start,
> >> 2009-09-07) for backstory.
> >
> > Oh, thanks. I was unaware of this mechanism and didn't care about what I was
> > touching.
> 
> I suspect that the documentation patch talks about a nonexistent reality.
> See 8ccba00 again ;-)

Doh! You said in this commit that

	"If you do not see something wrong with this output, your brain has already
	been rotten with use of git for too long a time."

but I claim the right to be rotten in much more ways. :-)

 Documentation/git-checkout.txt |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/Documentation/git-checkout.txt b/Documentation/git-checkout.txt
index 261dd90..1bacd2e 100644
--- a/Documentation/git-checkout.txt
+++ b/Documentation/git-checkout.txt
@@ -263,7 +263,7 @@ the above checkout would fail like this:
 +
 ------------
 $ git checkout mytopic
-fatal: Entry 'frotz' not uptodate. Cannot merge.
+error: You have local changes to 'frotz'; not switching branches.
 ------------
 +
 You can give the `-m` flag to the command, which would try a
-- 
1.7.2.rc2.194.g494e9.dirty

```

## Nicolas Sebrecht, 2010-07-09 20:27

Subject: [PATCH v4 2/2] merge-recursive: use "up-to-date" instead of "uptodate" in error message for consistency
Message-ID: <f5c54a4e27321b4ffb0f1f8542530281ef7841eb.1278707023.git.nicolas.s.dev@gmx.fr>
URL: https://gitlist.dev/e/f5c54a4e27321b4ffb0f1f8542530281ef7841eb.1278707023.git.nicolas.s.dev%40gmx.fr
In-Reply-To: <7vd3uystsh.fsf@alter.siamese.dyndns.org>

```
Signed-off-by: Nicolas Sebrecht <nicolas.s.dev@gmx.fr>
---
 merge-recursive.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/merge-recursive.c b/merge-recursive.c
index 856e98c..fb6aa4a 100644
--- a/merge-recursive.c
+++ b/merge-recursive.c
@@ -1214,7 +1214,7 @@ int merge_trees(struct merge_options *o,
 	}
 
 	if (sha_eq(common->object.sha1, merge->object.sha1)) {
-		output(o, 0, "Already uptodate!");
+		output(o, 0, "Already up-to-date!");
 		*result = head;
 		return 1;
 	}
-- 
1.7.2.rc2.194.g494e9.dirty

```

## Junio C Hamano, 2010-07-10 00:36

Subject: Re: [PATCH 1/2] checkout: accord documentation to what git does
Message-ID: <7v4og8i350.fsf@alter.siamese.dyndns.org>
URL: https://gitlist.dev/e/7v4og8i350.fsf%40alter.siamese.dyndns.org
In-Reply-To: <33e9dcc468b1e1ed18a180046f5d4c135921c7ab.1278707023.git.nicolas.s.dev@gmx.fr>

```
Nicolas Sebrecht <nicolas.s.dev@gmx.fr> writes:

> Doh! You said in this commit that
>
> 	"If you do not see something wrong with this output, your brain has already
> 	been rotten with use of git for too long a time."
>
> but I claim the right to be rotten in much more ways. :-)

Heh; thanks.

```

## Junio C Hamano, 2010-07-10 00:39

Subject: Re: [PATCH v4 2/2] merge-recursive: use "up-to-date" instead of "uptodate" in error message for consistency
Message-ID: <7vwrt4goga.fsf@alter.siamese.dyndns.org>
URL: https://gitlist.dev/e/7vwrt4goga.fsf%40alter.siamese.dyndns.org
In-Reply-To: <f5c54a4e27321b4ffb0f1f8542530281ef7841eb.1278707023.git.nicolas.s.dev@gmx.fr>

```
Nicolas Sebrecht <nicolas.s.dev@gmx.fr> writes:

> Signed-off-by: Nicolas Sebrecht <nicolas.s.dev@gmx.fr>
> ---
>  merge-recursive.c |    2 +-
>  1 files changed, 1 insertions(+), 1 deletions(-)
>
> diff --git a/merge-recursive.c b/merge-recursive.c
> index 856e98c..fb6aa4a 100644
> --- a/merge-recursive.c
> +++ b/merge-recursive.c
> @@ -1214,7 +1214,7 @@ int merge_trees(struct merge_options *o,
>  	}
>  
>  	if (sha_eq(common->object.sha1, merge->object.sha1)) {
> -		output(o, 0, "Already uptodate!");
> +		output(o, 0, "Already up-to-date!");
>  		*result = head;
>  		return 1;
>  	}

Sorry, but the pros-and-cons is not good enough for me to support this
change.  It will break users who have been parsing output with scripts.

We do strongly warn people against relying on Porcelain output, but that
does not mean we are free to change them without having a good reason or
two.  The new spelling won't help the next reader who will find the
message confusing the same way you did a few days ago.

IOW, if we are touching this line anyway, I'd like to make sure we made an
effort to make it less confusing, not just spelled correctly, while we
still have our memory of confusion fresh ;-)

```
