* [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 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).