Re: [PATCH v4 2/2] merge-recursive: use "up-to-date" instead of "uptodate" in error message for consistency

Previous thread: [PATCH] pack-refs: remove newly empty directories by Greg Price on Monday, July 5, 2010 - 3:27 pm. (8 messages)

Next thread: [PATCH 1/2] rebase-i: style fix by Junio C Hamano on Monday, July 5, 2010 - 11:27 pm. (1 message)
From: Nicolas Sebrecht
Date: Monday, July 5, 2010 - 10:35 pm

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
--

From: Junio C Hamano
Date: Monday, July 5, 2010 - 11:21 pm

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.
--

From: Nicolas Sebrecht
Date: Tuesday, July 6, 2010 - 1:58 am

This is what I was guessing but wanted to be sure that the resulting

Thanks for the explanations.

-- 
Nicolas Sebrecht
--

From: Wincent Colaiuta
Date: Monday, July 5, 2010 - 10:53 pm

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



--

From: Nicolas Sebrecht
Date: Tuesday, July 6, 2010 - 2:13 am

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

--

From: Ævar Arnfjörð Bjarmason
Date: Tuesday, July 6, 2010 - 5:47 am

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"
--

From: Nicolas Sebrecht
Date: Tuesday, July 6, 2010 - 8:55 am

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


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 | ...
From: Junio C Hamano
Date: Tuesday, July 6, 2010 - 10:28 pm

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

From: Nicolas Sebrecht
Date: Tuesday, July 6, 2010 - 10:46 pm

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

-- 
Nicolas Sebrecht
--

From: Junio C Hamano
Date: Wednesday, July 7, 2010 - 12:18 am

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.
--

From: Nicolas Sebrecht
Date: Wednesday, July 7, 2010 - 12:54 am

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


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

--

From: Junio C Hamano
Date: Wednesday, July 7, 2010 - 5:26 pm

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

--

From: Nicolas Sebrecht
Date: Friday, July 9, 2010 - 1:27 pm

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


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

--

From: Junio C Hamano
Date: Friday, July 9, 2010 - 5:36 pm

Heh; thanks.
--

From: Nicolas Sebrecht
Date: Friday, July 9, 2010 - 1:27 pm

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

--


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 ;-)
--

Previous thread: [PATCH] pack-refs: remove newly empty directories by Greg Price on Monday, July 5, 2010 - 3:27 pm. (8 messages)

Next thread: [PATCH 1/2] rebase-i: style fix by Junio C Hamano on Monday, July 5, 2010 - 11:27 pm. (1 message)