git-hg-sub-import: Affiche les traces pour subpaths seulement en mode debug
[hvutilities.git] / scripts / git-hg-sub-import
index ecd7757..9789578 100755 (executable)
@@ -24,8 +24,10 @@ hg_subpaths_config() {
         sp_src=${sp_src//\\/} # Remove windows separator (LSI)
         sp_dst=${subpaths//*=/}
 
-        echo "sp_src = $sp_src"
-        echo "sp_dst = $sp_dst"
+        if [ -n "${debug}" ]; then
+            echo "sp_src = $sp_src"
+            echo "sp_dst = $sp_dst"
+        fi
     fi
 }
 
@@ -50,8 +52,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 +124,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