emacs-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: git commit message checker won't let me commit a new file.


From: Alan Mackenzie
Subject: Re: git commit message checker won't let me commit a new file.
Date: Wed, 19 Jul 2023 09:22:06 +0000

Hello, Jim.

Thanks for the rapid reply.

On Tue, Jul 18, 2023 at 15:05:34 -0700, Jim Porter wrote:
> On 7/18/2023 1:23 PM, Alan Mackenzie wrote:
> > Hello, Emacs.

> > I'm trying to commit a fix for bug #64642.  This involves adding a new
> > test file.

> > The commit message checker says "File
> > test/src/comp-resources/comp-test-funcs-dyn2.el: cannot be read: [No
> > such file or directory]
> > Commit aborted; please see the file CONTRIBUTE"

> That's surprising. This works perfectly for me. Can you describe in more 
> detail how you're committing your change? Here's what I did:

>    $ git checkout -b testing
>    $ echo hi > test/src/comp-resources/comp-test-funcs-dyn2.el
>    $ git add test/src/comp-resources/comp-test-funcs-dyn2.el
>    $ git commit

Having created the file:
    $ git add test/src/comp-resources/comp-test-funcs-dyn2.el
    $ git commit.

> In my editor, I add this for the commit message:

>    * test/src/comp-resources/comp-test-funcs-dyn2.el: New file.

My commit message, in full, is (read from .git/COMMIT_EDITMSG:

#########################################################################

Fix native compilation in dynamically bound files.

This fixes bug#64642.

* lisp/emacs-lisp/comp.el (comp-spill-lap-function/symbol): Add
code for dynamically bound functions.

* test/src/comp-tests.el (comp-tests-result-lambda): New test.

* test/src/comp-resources/comp-test-funcs-dyn2.el: New test
file.

# Please enter the commit message for your changes. Lines starting
# with '#' will be ignored, and an empty message aborts the commit.
#
# On branch master
# Your branch is up to date with 'origin/master'.
#
# Changes to be committed:
#       modified:   lisp/emacs-lisp/comp.el
#       new file:   test/src/comp-resources/comp-test-funcs-dyn2.el
#       modified:   test/src/comp-tests.el
#
# Changes not staged for commit:
#       modified:   .gitignore
#
# Untracked files:
#       .gitignore.acm
#       .gitignore.backup
#       .timestamps.txt
#       2021-01-03.err
#       2021-01-06.err
#       2021-12-16.make
#       2021-12-30.err
#       2021-12-31.err
#       2022-01-01.err
#       2022-01-02.check.err
#       2022-01-02.err
#       2022-01-04.err
#       2022-01-05.err
#       2022-01-06.err
#       2022-01-07.err
#       2022-01-07.outerr
#       2022-01-08.err
#       2022-01-09.err
#       2022-01-09b.err
#       2022-01-10.err
#       2022-01-11
#       2022-01-11.err
#       2022-02-22.err
#       2022-02-22.outerr
#       checkout.20220228.out
#       checkout.20220301.out
#       checkout.20220302.out
#       doc/lispref/syntax.20160318.techsi
#       doc/lispref/syntax.20160318b.techsi
#       lib/.deps/
#       lisp/2022-01-09.err
#       lisp/emacs-lisp/comp.el.rej
#       src/2021-12-20.err
#       src/globals.20211124.aitch
#       src/lisp.20211127.aitch
#       test/lisp/calendar/icalendar-tests.elcr5m9Wq
#
#########################################################################
> The commit hooks run successfully for me and don't produce any errors.

I got the error described in my first post.  I tried it again this
morning with
    $ git commit -F .git/COMMIT_EDITMSG
, and got just the same.

> Based on the output you see, I'm guessing the issue is in the 
> `commit-msg` hook, but I don't see anything in there that would do this.

I now think it has nothing to do with the hooks.  The text "No such file
or directory" doesn't appear in any of the hooks.  The new file has
permissions 
-rw-r--r-- 1 acm acm 1068 Jul 18 19:11 
test/src/comp-resources/comp-test-funcs-dyn2.el
, which is surely OK for manipulation by git.

If I do git status, I get:

#########################################################################
On branch master
Your branch is up to date with 'origin/master'.

Changes to be committed:
  (use "git restore --staged <file>..." to unstage)
        modified:   lisp/emacs-lisp/comp.el
        new file:   test/src/comp-resources/comp-test-funcs-dyn2.el
        modified:   test/src/comp-tests.el

Changes not staged for commit:
  (use "git add <file>..." to update what will be committed)
  (use "git restore <file>..." to discard changes in working directory)
        modified:   .gitignore

Untracked files:
  (use "git add <file>..." to include in what will be committed)
        .gitignore.acm
        .gitignore.backup
        .timestamps.txt
<etc....>
#########################################################################

If I do git status --porcelain, I get:

#########################################################################
 M .gitignore
M  lisp/emacs-lisp/comp.el
A  test/src/comp-resources/comp-test-funcs-dyn2.el
M  test/src/comp-tests.el
?? .gitignore.acm
?? .gitignore.backup
?? .timestamps.txt
<etc....>
#########################################################################

I think I've got something tied in knots, somewhere, but I can't see
how.

If you've got any more ideas, I'd be grateful.  Thanks!

-- 
Alan Mackenzie (Nuremberg, Germany).



reply via email to

[Prev in Thread] Current Thread [Next in Thread]