* [PATCH Cogito] Use git-update-ref for updating the HEAD
@ 2005-10-02 10:12 Jonas Fonseca
2005-10-08 16:57 ` [PATCH Cogito] Use git-{update,symbolic}-ref for updating HEAD Jonas Fonseca
0 siblings, 1 reply; 2+ messages in thread
From: Jonas Fonseca @ 2005-10-02 10:12 UTC (permalink / raw)
To: Petr Baudis; +Cc: git
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.
Signed-off-by: Jonas Fonseca <fonseca@diku.dk>
---
commit b41f8cafc556233613412ff3545e3507202b666a
tree 9e2c5d8d467acc27d7c866c908990d7de44478f9
parent b06f2a707963c8712f7a6bbd4b89bae758bcf92a
author Jonas Fonseca <fonseca@diku.dk> Thu, 29 Sep 2005 15:09:06 +0200
committer Jonas Fonseca <fonseca@stud1-9.itu.dk> Thu, 29 Sep 2005 15:09:06 +0200
cg-Xlib | 2 +-
cg-commit | 2 +-
cg-init | 1 -
3 files changed, 2 insertions(+), 3 deletions(-)
diff --git a/cg-Xlib b/cg-Xlib
--- 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 '
diff --git a/cg-commit b/cg-commit
--- a/cg-commit
+++ b/cg-commit
@@ -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
--- 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
--
Jonas Fonseca
^ permalink raw reply [flat|nested] 2+ messages in thread* [PATCH Cogito] Use git-{update,symbolic}-ref for updating HEAD
2005-10-02 10:12 [PATCH Cogito] Use git-update-ref for updating the HEAD Jonas Fonseca
@ 2005-10-08 16:57 ` Jonas Fonseca
0 siblings, 0 replies; 2+ messages in thread
From: Jonas Fonseca @ 2005-10-08 16:57 UTC (permalink / raw)
To: Petr Baudis; +Cc: git
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
^ permalink raw reply related [flat|nested] 2+ messages in thread
end of thread, other threads:[~2005-10-08 16:57 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2005-10-02 10:12 [PATCH Cogito] Use git-update-ref for updating the HEAD Jonas Fonseca
2005-10-08 16:57 ` [PATCH Cogito] Use git-{update,symbolic}-ref for updating HEAD Jonas Fonseca
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.