git-hg-sub-import: Ajuste le repository git au commit dans .hgsubstate
authorHugo Villeneuve <hugo@hugovil.com>
Fri, 28 Jun 2013 20:05:21 +0000 (16:05 -0400)
committerHugo Villeneuve <hugo@hugovil.com>
Wed, 31 Jul 2013 18:05:38 +0000 (14:05 -0400)
Façon détournée de faire les choses pour l'instant, car les hash de
Mercurial et de git sont différents.

scripts/git-hg-sub-import

index ecd7757..64b1035 100755 (executable)
@@ -50,8 +50,12 @@ subrepo_find_branch() {
         branch=default
     fi
 
+    num=$(hg log --branch "${branch}" --template '{node}\n' | \
+        grep -n ${rev} | awk -F ':' '{print $1}')
+
     if [ -n "${debug}" ]; then
         echo "  branch: ${branch}"
+        echo "  num:    ${num}"
     fi
 
     popd
@@ -118,9 +122,13 @@ while read sub; do
                 cd "${dest}"
                 git checkout "branches/${branch}"
 
-                # This does not work: the SHA from hg and git
-                # are not the same...
-                #git reset --hard ${rev}
+                # Adjusting git tree to specific commit specified in
+                # .hgsubstate:
+                # The SHA from hg and git are not the same, therefore, we must
+                # find the commit sequence in hg and map this
+                # to a hash in git using the ${num} variable:
+                git_rev=$(git log --oneline | sed -n "${num}p" | awk '{print $1}')
+                git reset --hard ${git_rev}
 
                 cd ..
             fi