From: Jonas Fonseca <fonseca@diku.dk>
To: Petr Baudis <pasky@ucw.cz>
Cc: git@vger.kernel.org
Subject: [PATCH Cogito] Use git-{update,symbolic}-ref for updating HEAD
Date: Sat, 8 Oct 2005 18:57:23 +0200 [thread overview]
Message-ID: <20051008165723.GA28414@diku.dk> (raw)
In-Reply-To: <20051002101224.GA9219@diku.dk>
Conditionally make git-update-ref check the old head. For this to succeed
for the initial commit, cg-init should not touch .git/refs/heads/master,
and the touching seems to be redundant anyway, so remove it.
This should make Cogito mostly work on cygwin.
Signed-off-by: Jonas Fonseca <fonseca@diku.dk>
---
This is an incremental update to make Cogito handle symbolic refs.
I am not sure whether the change from using '[ -L .git/HEAD ]' to using
'[ -e .git/HEAD ]' is the thing to do. And I haven't used it so much
yet; did a few commit and so on. And the tests fails do to local cloning
not working yet (git-local-fetch needs to be fixed).
Makefile | 2 +-
cg-Xlib | 4 ++--
cg-commit | 4 ++--
cg-init | 1 -
cg-object-id | 2 +-
---
diff --git a/Makefile b/Makefile
index f0a0590..9eacade 100644
--- a/Makefile
+++ b/Makefile
@@ -35,7 +35,7 @@ all: cogito
cogito: $(GEN_SCRIPT)
ifneq (,$(wildcard .git))
-GIT_HEAD=.git/HEAD
+GIT_HEAD=.git/$(shell git-symbolic-ref HEAD)
GIT_HEAD_ID=" \($(shell cat $(GIT_HEAD))\)"
endif
cg-version: $(VERSION) $(GIT_HEAD) Makefile
diff --git a/cg-Xlib b/cg-Xlib
index b27e8b9..dcf9aa3 100755
--- a/cg-Xlib
+++ b/cg-Xlib
@@ -246,7 +246,7 @@ tree_timewarp()
fi
git-read-tree -m "$branch" || die "$branch: bad commit"
- [ "$no_head_update" ] || echo "$branch" > $_git/HEAD
+ [ "$no_head_update" ] || git-update-ref HEAD "$branch"
# Kill gone files
git-diff-tree -z -r $base $branch | xargs -0 bash -c '
@@ -471,7 +471,7 @@ if [ ! "$_git_repo_unneeded" ]; then
exit 1
fi
_git_head=master
- [ -L "$_git/HEAD" ] && _git_head="$(basename "$(readlink "$_git/HEAD")")"
+ [ -e "$_git/HEAD" ] && _git_head="$(basename "$(git-symbolic-ref HEAD)")"
[ -s "$_git/head-name" ] && _git_head="$(cat "$_git/head-name")"
fi
diff --git a/cg-commit b/cg-commit
index 4345bd5..6024f17 100755
--- a/cg-commit
+++ b/cg-commit
@@ -396,7 +396,7 @@ fi
oldhead=
if [ -s "$_git/HEAD" ]; then
- oldhead=$(cat $_git/HEAD)
+ oldhead=$(git-symbolic-ref HEAD)
oldheadstr="-p $oldhead"
fi
@@ -420,7 +420,7 @@ fi
if [ "$newhead" ]; then
echo "Committed as $newhead."
- echo $newhead >$_git/HEAD
+ git-update-ref HEAD $newhead $oldhead
[ "$merging" ] && rm $_git/merging $_git/merging-sym $_git/merge-base
rm -f "$_git/commit-ignore"
diff --git a/cg-init b/cg-init
index 570c83e..65faf84 100755
--- a/cg-init
+++ b/cg-init
@@ -48,7 +48,6 @@ done
cleanup_trap "rm -rf $_git"
git-init-db
-touch $_git/refs/heads/master
git-read-tree # Seed the dircache
if ! [ "$no_initial_commit" ]; then
diff --git a/cg-object-id b/cg-object-id
index 2ae9420..5c03626 100755
--- a/cg-object-id
+++ b/cg-object-id
@@ -53,7 +53,7 @@ normalize_id()
fi
if [ ! "$id" ] || [ "$id" = "this" ] || [ "$id" = "HEAD" ]; then
- read id < "$_git/HEAD"
+ read id < "$_git/$(git-symbolic-ref HEAD)"
elif [ -r "$_git/refs/tags/$id" ]; then
read id < "$_git/refs/tags/$id"
--
Jonas Fonseca
prev parent reply other threads:[~2005-10-08 16:57 UTC|newest]
Thread overview: 2+ messages / expand[flat|nested] mbox.gz Atom feed top
2005-10-02 10:12 [PATCH Cogito] Use git-update-ref for updating the HEAD Jonas Fonseca
2005-10-08 16:57 ` Jonas Fonseca [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20051008165723.GA28414@diku.dk \
--to=fonseca@diku.dk \
--cc=git@vger.kernel.org \
--cc=pasky@ucw.cz \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).