All of lore.kernel.org
 help / color / mirror / Atom feed
* [BUG] Git won't commit
@ 2011-08-12 17:13 Fabricio Nascimento
  2011-08-12 17:20 ` Fabricio Nascimento
  2011-08-12 17:30 ` Michael Witten
  0 siblings, 2 replies; 7+ messages in thread
From: Fabricio Nascimento @ 2011-08-12 17:13 UTC (permalink / raw)
  To: git

Hello Everybody,

Hope this is the right place to send this bug report.

It just appeared today, last time I've made a successful commit was 3 days
ago. Now every commit, in no matter which repository I have (I've tried old
ones, cloned today, github ones etc) fails with the following message.

[master 09-mapas] git commit
fatal: could not read 'template': No such file or directory

It happens both with the stock git binary that came with Xcode 4.1 on OSX
Lion (1.7.4.4) [/usr/local/bin/git], and the homebrew version (1.7.6)
[/usr/bin/git].

I haven't changed much of my system during those days besides installing
macports and tinycdb (with ports). Don't see any close relation, both
tinycdb and macports were removed.

Curiously, it works well with the git binary that comes with Github.app for
mac, whose version is 1.7.4.



--
View this message in context: http://git.661346.n2.nabble.com/BUG-Git-won-t-commit-tp6681082p6681082.html
Sent from the git mailing list archive at Nabble.com.

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [BUG] Git won't commit
  2011-08-12 17:13 [BUG] Git won't commit Fabricio Nascimento
@ 2011-08-12 17:20 ` Fabricio Nascimento
  2011-08-12 17:30 ` Michael Witten
  1 sibling, 0 replies; 7+ messages in thread
From: Fabricio Nascimento @ 2011-08-12 17:20 UTC (permalink / raw)
  To: git

I have installed an stock version of git 1.7.6 from here, and I've got the
same problem.

http://code.google.com/p/git-osx-installer/downloads/detail?name=git-1.7.6-x86_64-snow-leopard.dmg&can=3&q=

I've forgot to mention but I've updated all homebrew formulas during this
past days too, so it might be that previously I had a homebrew version of
git whose version where below or equal 1.4, and that something changed
causing this error now. 

--
View this message in context: http://git.661346.n2.nabble.com/BUG-Git-won-t-commit-tp6681082p6681098.html
Sent from the git mailing list archive at Nabble.com.

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [BUG] Git won't commit
  2011-08-12 17:13 [BUG] Git won't commit Fabricio Nascimento
  2011-08-12 17:20 ` Fabricio Nascimento
@ 2011-08-12 17:30 ` Michael Witten
       [not found]   ` <CAAC=0R66j43CqpaxXskAwHsitvRFwy7DsjguNPm+sPa4YmTWqw@mail.gmail.com>
  1 sibling, 1 reply; 7+ messages in thread
From: Michael Witten @ 2011-08-12 17:30 UTC (permalink / raw)
  To: Fabricio Nascimento; +Cc: git

On Fri, Aug 12, 2011 at 17:13, Fabricio Nascimento <fabriciosn@gmail.com> wrote:
> Hello Everybody,
>
> Hope this is the right place to send this bug report.
>
> It just appeared today, last time I've made a successful commit was 3 days
> ago. Now every commit, in no matter which repository I have (I've tried old
> ones, cloned today, github ones etc) fails with the following message.
>
> [master 09-mapas] git commit
> fatal: could not read 'template': No such file or directory
>
> It happens both with the stock git binary that came with Xcode 4.1 on OSX
> Lion (1.7.4.4) [/usr/local/bin/git], and the homebrew version (1.7.6)
> [/usr/bin/git].
>
> I haven't changed much of my system during those days besides installing
> macports and tinycdb (with ports). Don't see any close relation, both
> tinycdb and macports were removed.
>
> Curiously, it works well with the git binary that comes with Github.app for
> mac, whose version is 1.7.4.

What does the following output for you?

  git config --get commit.template

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [BUG] Git won't commit
       [not found]   ` <CAAC=0R66j43CqpaxXskAwHsitvRFwy7DsjguNPm+sPa4YmTWqw@mail.gmail.com>
@ 2011-08-13 20:56     ` Michael Witten
  2011-08-13 21:18       ` Jonathan Nieder
  0 siblings, 1 reply; 7+ messages in thread
From: Michael Witten @ 2011-08-13 20:56 UTC (permalink / raw)
  To: Fabrício Nascimento; +Cc: git

2011/8/12 Fabrício Nascimento <fabricio@tailorbirds.com.br>:
> Where git is the 1.7.6 that does not work, and git2 is the 1.7.4 that does
> work.
> [master 09-mapas] git config --get commit.template
> template
> [master 09-mapas] git2 config --get commit.template
> template

Did you get this problem figured out? If not, run:

  git config --unset commit.template

and then try making a commit as usual.

As for why one version works but the other does not, I'm not sure.

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [BUG] Git won't commit
  2011-08-13 20:56     ` Michael Witten
@ 2011-08-13 21:18       ` Jonathan Nieder
       [not found]         ` <CAAC=0R5CpJx1QOKYJDs0_ksEdyYG95fSAo3U3eU536YW=M84MA@mail.gmail.com>
  0 siblings, 1 reply; 7+ messages in thread
From: Jonathan Nieder @ 2011-08-13 21:18 UTC (permalink / raw)
  To: Michael Witten; +Cc: Fabrício Nascimento, git

Hi,

Michael Witten wrote:

> As for why one version works but the other does not, I'm not sure.

It's my fault, I'm afraid:

 $ git log v1.7.4..v1.7.4.4 --grep=template --no-merges
 commit 2140b140
 Author: Jonathan Nieder <jrnieder@gmail.com>
 Date:   Fri Feb 25 03:07:57 2011 -0600

     commit: error out for missing commit message template

     When "git commit" was rewritten in C (v1.5.4-rc0~78^2~30,
     2007-11-08), a subtle bug in --template was introduced.  If the
     file named by a --template parameter is missing, previously git
     would error out with a message:

         Commit template file does not exist.

     but in the C version the --template parameter gets ignored and
     the default template is used.

     t7500 has two tests for this case which would have caught it, except
     that with the default $EDITOR, the commit message template is left
     unmodified, causing 'git commit' to error out and the test to
     succeed.

     Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
     Signed-off-by: Junio C Hamano <gitster@pobox.com>

Fabricio, do you remember what you were trying to do when the
"[commit] template" configuration got set?  Currently the error
message says

	fatal: could not read '<path>'

where <path> is the configured template filename; probably this
should be changed to mention (1) that the file we were expecting to
find is a commit message template and (2) whether we got it from the
commandline or configuration.

What I'm trying to figure out is whether other people were relying on
the accidental "optional template" behavior or if there is some case
where it is more useful.  If so, it should be brought back.

^ permalink raw reply	[flat|nested] 7+ messages in thread

* [PATCH] commit: clarify "could not read 'template'" message
       [not found]         ` <CAAC=0R5CpJx1QOKYJDs0_ksEdyYG95fSAo3U3eU536YW=M84MA@mail.gmail.com>
@ 2011-08-19  5:07           ` Jonathan Nieder
  2011-08-19  6:04             ` Junio C Hamano
  0 siblings, 1 reply; 7+ messages in thread
From: Jonathan Nieder @ 2011-08-19  5:07 UTC (permalink / raw)
  To: Fabrício Nascimento; +Cc: Michael Witten, git

Fabrício noticed that when the "[commit] template" configuration is
misconfigured to point to a nonexistent file, ever since v1.7.4.2
(see 2140b140, 2011-02-25), "git commit" fails in a seemingly
mysterious way:

	$ git commit
	fatal: could not read 'template': No such file or directory

In olden times, the message instead said

	Commit template file does not exist.

which makes it a little clearer that the --template option or
corresponding configuration item is being misused.  Let's move a
little in that direction, by saying "could not read commit message
template 'template'".

Note that the origin of the setting in the motivating ~/.gitignore is
still unknown.  Depending on the answer, it might be nice to start
ignoring nonexistent commit templates again; if the problem is
widespread, hopefully there will be more reports soon.

Noticed-by: Fabrício Nascimento <fabriciosn@gmail.com>
Analysis-by: Michael Witten <mfwitten@gmail.com>
Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
---
Hi again,

Fabrício Nascimento wrote:

> I have no idea what could have set the variable. Time Machine tells me the
> only changes on the .gitconfig file happened on August 12th, the day I've
> flagged the bug. I know I've made a brew upgrade on all my packages (that
> included git) the night before, and then the bug appeared the day after. I
> should have done only git stats, commit, pull and push.

Thanks for these details.  I looked through the packages in brew, but no
obvious clues.

At least the problem could have been easier to debug.  How about this
patch, to start?

 builtin/commit.c |    3 ++-
 1 files changed, 2 insertions(+), 1 deletions(-)

diff --git a/builtin/commit.c b/builtin/commit.c
index cb738574..d029ec03 100644
--- a/builtin/commit.c
+++ b/builtin/commit.c
@@ -703,7 +703,8 @@ static int prepare_to_commit(const char *index_file, const char *prefix,
 		hook_arg1 = "squash";
 	} else if (template_file) {
 		if (strbuf_read_file(&sb, template_file, 0) < 0)
-			die_errno(_("could not read '%s'"), template_file);
+			die_errno(_("could not read commit message template '%s'"),
+				  template_file);
 		hook_arg1 = "template";
 		clean_message_contents = 0;
 	}
-- 
1.7.6

^ permalink raw reply related	[flat|nested] 7+ messages in thread

* Re: [PATCH] commit: clarify "could not read 'template'" message
  2011-08-19  5:07           ` [PATCH] commit: clarify "could not read 'template'" message Jonathan Nieder
@ 2011-08-19  6:04             ` Junio C Hamano
  0 siblings, 0 replies; 7+ messages in thread
From: Junio C Hamano @ 2011-08-19  6:04 UTC (permalink / raw)
  To: Jonathan Nieder; +Cc: Fabrício Nascimento, Michael Witten, git

Jonathan Nieder <jrnieder@gmail.com> writes:

> At least the problem could have been easier to debug.  How about this
> patch, to start?

It is a good start, but at this point do we know where the template_file
came from? It does not seem rocket surgery to update git_commit_config()
so that it stores the value taken from configuration file in a separate
variable so that we can tell the difference in order to tweak the message.

Are there only these three kinds of "pathname" variables that can be
configured?

 - Those to be always used (it is an error if missing);
 - Those to be always used (the calling code creat(2)s if missing); and
 - Those to be used only if already exist (otherwise ignored).

If so, a good way forward might be to update git_config_pathname() and
tell it which kind of path we are talking about. For the first and the
third kind, it would (after ~ expansion and other magic) stat the string
and error out for the first kind and return NULL for the third kind. For
the second kind, we do not need to do anything special. We may need to
distinguish between files and dirs, so we might need 6 variations, not
just 3, but that is a minor implementation detail.

This is one of the reasons that I tend to resist applying patches that add
useless configuration variables "just because it seems useful".

>  builtin/commit.c |    3 ++-
>  1 files changed, 2 insertions(+), 1 deletions(-)
>
> diff --git a/builtin/commit.c b/builtin/commit.c
> index cb738574..d029ec03 100644
> --- a/builtin/commit.c
> +++ b/builtin/commit.c
> @@ -703,7 +703,8 @@ static int prepare_to_commit(const char *index_file, const char *prefix,
>  		hook_arg1 = "squash";
>  	} else if (template_file) {
>  		if (strbuf_read_file(&sb, template_file, 0) < 0)
> -			die_errno(_("could not read '%s'"), template_file);
> +			die_errno(_("could not read commit message template '%s'"),
> +				  template_file);
>  		hook_arg1 = "template";
>  		clean_message_contents = 0;
>  	}

^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2011-08-19  6:04 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2011-08-12 17:13 [BUG] Git won't commit Fabricio Nascimento
2011-08-12 17:20 ` Fabricio Nascimento
2011-08-12 17:30 ` Michael Witten
     [not found]   ` <CAAC=0R66j43CqpaxXskAwHsitvRFwy7DsjguNPm+sPa4YmTWqw@mail.gmail.com>
2011-08-13 20:56     ` Michael Witten
2011-08-13 21:18       ` Jonathan Nieder
     [not found]         ` <CAAC=0R5CpJx1QOKYJDs0_ksEdyYG95fSAo3U3eU536YW=M84MA@mail.gmail.com>
2011-08-19  5:07           ` [PATCH] commit: clarify "could not read 'template'" message Jonathan Nieder
2011-08-19  6:04             ` Junio C Hamano

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.