emacs-devel
[Top][All Lists]
Advanced

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

Re: Why does make run git?


From: Ted Zlatanov
Subject: Re: Why does make run git?
Date: Tue, 15 Aug 2017 12:58:27 -0400
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/26.0.50 (gnu/linux)

On Tue, 15 Aug 2017 08:52:30 -0700 Paul Eggert <address@hidden> wrote: 

PE> Ted Zlatanov wrote:
>> perhaps CONTRIBUTE
>> and INSTALL should mention how to compile and run Emacs without running
>> Git or expecting a .git/hooks directory?

PE> Those files already attempt to do that. In what sense do they fall short? 
What
PE> wording needs to be changed?

I guess INSTALL doesn't deal with autogen.sh so it doesn't need changes.

I think CONTRIBUTE should mention, right after saying to run autogen.sh,
that the above requires Git to be installed.

PE> Or perhaps a better way to put it: what went wrong with your build, 
exactly? Is
PE> it something that autogen.sh can detect and work around automatically? It'd 
be
PE> better to automate away any problems than to complicate CONTRIBUTE and 
INSTALL
PE> to work around them.

Agreed :) Hence my next paragraph.

What went wrong? https://gitlab.com/emacs-ci/emacs/-/jobs/29326689 says

#+begin_src text
$ ./autogen.sh
Checking whether you have the necessary tools...
(Read INSTALL.REPO for more details on building Emacs)
Checking for autoconf (need at least version 2.65) ... ok
Your system has the required tools.
Building aclocal.m4 ...
Running 'autoreconf -fi -I m4' ...
Configuring local git repository...
'.git/config' -> '.git/config.~1~'
git config transfer.fsckObjects 'true'
git config diff.elisp.xfuncname 
'^\(def[^[:space:]]+[[:space:]]+([^()[:space:]]+)'
git config diff.m4.xfuncname '^((m4_)?define|A._DEFUN(_ONCE)?)\([^),]*'
git config diff.make.xfuncname 
'^([$.[:alnum:]_].*:|[[:alnum:]_]+[[:space:]]*([*:+]?[:?]?|!?)=|define .*)'
git config diff.shell.xfuncname 
'^([[:space:]]*[[:alpha:]_][[:alnum:]_]*[[:space:]]*\(\)|[[:alpha:]_][[:alnum:]_]*=)'
git config diff.texinfo.xfuncname 'address@hidden:space:]]+([^,[:space:]][^,]+)'
Installing git hooks...
'build-aux/git-hooks/commit-msg' -> '.git/hooks/commit-msg'
cp: cannot create regular file '.git/hooks/commit-msg': No such file or 
directory
ERROR: Job failed: exit code 1
#+end_src

So it looks like it assumes that `.git/hooks' exists. I don't know why
that's not true in the GitLab checkout. Maybe "Configuring local git
repository" could be changed to "Configuring local git repository (run
'autogen.sh autoconf' to skip this step)"? That would probably be the
most direct way to help users who don't read the docs :)

>> Maybe there could even be a more automatic way to avoid running the Git
>> commands inside an automated build, where there's no chance they will be
>> needed?

PE> That's easy, just run "rm -r .git". I don't think this is a good idea, 
though.

Yes, it's a radical surgery. I think the text change suggested above is
a gentler way.

Ted




reply via email to

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