git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: [PATCH] Cogito chicken-and-egg problem

From
PRPavel Roskin <proski@gnu.org>
Date
Apr 26, 2005, 17:02 UTC
Message-ID
<1114534942.26856.10.camel@dv>
In-Reply-To
<Pine.LNX.4.21.0504261229220.30848-100000@iabervon.org>
Hello, Daniel!
On Tue, 2005-04-26 at 12:38 -0400, Daniel Barkalow wrote:
Show 5 quoted lines
> > Also, the dependency on commit-id was dropped from my patch for some
> > reason.  I believe it's still needed.  Also, we need a dependency on
> > cat-file, which is used by commit-id internally.
> 
> commit-id doesn't really use cat-file; the way it calls gitXnormid.sh
There is gitXnormid.sh in the current cogito.  Please update your tree.
> definitely suppresses that section.

That's not what I see if I remove cat-file but leave commit-id in my $HOME/bin:

proski@dv:~/src/cogito$ make cg-version /home/proski/bin/commit-id: line 35: cat-file: command not found Invalid id: f9f0459b5b39cf83143c91ae39b4eaf187cf678a Generating cg-version... proski@dv:~/src/cogito$

> In fact, commit-id with no arguments
> is simply an easy-to-remember way of doing "cat .git/HEAD" using a much
> more complicated script. Earlier, I sent a patch to just do this, since it
> avoids the whole issue.
That would be fine with me.
> (Also, .git/HEAD is a dependancy, since you want to redo the version
> script if you commit; but if you don't have it, that's okay and just means
> you're building from a tarball, which is described completely by VERSION)

It should be a conditional dependency, i.e. it should be a dependency if .git exists.

It seems to me that the whole idea of including SHA1 in cg-version is broken. SHA1 is not human readable. But if the maintainers insist on having SHA1 in cg-version, I want it to be done without causing build warnings for new users.

Here's an alternative patch.
Signed-off-by: Pavel Roskin <proski@gnu.org>
Index: Makefile
===================================================================
--- f262000f302b749e485f5eb971e6aabefbb85680/Makefile  (mode:100644 sha1:4f01bbbbb3fd0e53e9ce968f167b6dae68fcfa92)
+++ uncommitted/Makefile  (mode:100644)
@@ -87,12 +87,21 @@
 http-pull: LIBS += -lcurl
 
 
+ifneq (,$(wildcard .git))
+cg-version: $(VERSION) .git/HEAD
+	@echo Generating cg-version...
+	@rm -f $@
+	@echo "#!/bin/sh" > $@
+	@echo "echo \"$(shell cat $(VERSION)) ($(shell cat .git/HEAD))\"" >> $@
+	@chmod +x $@
+else
 cg-version: $(VERSION)
 	@echo Generating cg-version...
 	@rm -f $@
 	@echo "#!/bin/sh" > $@
-	@PATH=.:$(PATH) echo "echo \"$(shell cat $(VERSION)) ($(shell commit-id))\"" >> $@
+	@echo "echo \"$(shell cat $(VERSION))\"" >> $@
 	@chmod +x $@
+endif
 
 install: $(PROG) $(SCRIPTS) $(SCRIPT) $(GEN_SCRIPT)
 	install -m755 -d $(DESTDIR)$(bindir)
-- 
Regards,
Pavel Roskin
Previous: Daniel BarkalowNext: Daniel Barkalow
Message 3 of 4 in “Cogito chicken-and-egg problem”
  1. Cogito chicken-and-egg problemPavel Roskin, Apr 26, 2005
  2. Daniel BarkalowApr 26, 2005
  3. Pavel RoskinApr 26, 2005
  4. Daniel BarkalowApr 26, 2005

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.