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

"cg-commit -M msg-file ..." fails when not run from top of tree

From
Jim Meyering <jim@meyering.net>
Date
Aug 23, 2006, 10:27 UTC
Message-ID
<87d5aru4px.fsf@rho.meyering.net>
Hello,

I discovered that "cg-commit -M MSG-FILE ..." fails when run from a subdirectory, and when MSG-FILE is a relative file name. This is using cogito-0.17.3-2 from Debian/unstable, but the problem remains when using the latest cogito sources, pulled minutes ago.

Here's an example:
  $ mkdir a; touch a/x; cg-init -m. .; cd a; echo . > x; cg-commit -M x x
  defaulting to local storage area
  Adding file a/x
  Committing initial tree 341d89829a1bf9c0ccfbccf738815cbc862b3242
  Committed as 6497164c6f8e86220ff26c6b89b9d0dbad5a7743
  cat: x: No such file or directory
  [Exit 1]
This appears to be due to the "cd", that can happen in cg-Xlib:
  _git="${GIT_DIR:-.git}"
  if [ ! "$_git_repo_unneeded" ] && [ ! "$GIT_DIR" ] && [ ! -d "$_git" ]; then
          _git_abs_path="$(git-rev-parse --git-dir 2>/dev/null)"
          if [ -d "$_git_abs_path" ]; then
                  _git_relpath="$(git-rev-parse --show-prefix)"
==========>       cd "$_git_abs_path/.."         <==============
          fi
  fi
  _git_objects="${GIT_OBJECT_DIRECTORY:-$_git/objects}"

I can work around the problem by using an absolute name for the message file, but I shouldn't have to do that.

FWIW, I tried setting GIT_DIR to the absolute name of the .git directory, but that just made it so cg-commit failed with this diagnostic:

  cg-commit: Nothing to commit
Jim
Next: Jonas Fonseca
Message 1 of 3 in “"cg-commit -M msg-file ..." fails when not run from top of tree”
  1. Jim MeyeringAug 23, 2006
  2. cg-commit: prefix the relative path to the message fileJonas Fonseca, Aug 25, 2006
  3. Jim MeyeringSep 16, 2006

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.