6 SVN_UUID
=`svk pg --revprop -r0 svn:sync-from-uuid /$SVK_DEPOT/`
7 SVN_URL
=`svk pg --revprop -r0 svn:sync-from-url /$SVK_DEPOT/`
8 MAX_REV
=`svk pg --revprop -r0 svn:sync-last-merged-rev /$SVK_DEPOT/`
10 echo SVN_UUID
: $SVN_UUID
11 echo SVN_URL
: $SVN_URL
12 echo MAX_REV
: $MAX_REV
14 svk co
-r1 /$SVK_DEPOT/ $CO_DIR
17 mkdir
-p $HASH_DIR/{0,1,2,3,4,5,6,7,8,9,a
,b
,c
,d
,e
,f
}{0,1,2,3,4,5,6,7,8,9,a
,b
,c
,d
,e
,f
}
18 for (( REV
=1 ; REV
<=MAX_REV
; ++REV
)) do
20 # Hashify working copy
21 git update-index
--refresh 2>/dev
/null
22 git ls-files
-modz |
tee .git
/filelist | git update-index
-z --add --replace --remove --stdin
23 xargs -0 git ls-files
-s < .git
/filelist |
(
24 while read MODE HASH STAGE FILE
; do
25 HASH_FILE
="$HASH_DIR/${HASH:0:2}/$HASH$MODE"
26 ln "$FILE" "$HASH_FILE" 2>/dev
/null || \
27 ln -f "$HASH_FILE" "$FILE"
30 SVN_AUTHOR
=`svk pg --revprop -r$REV svn:author`
31 SVN_DATE
=`svk pg --revprop -r$REV svn:date`
32 export GIT_COMMITTER_NAME
=$SVN_AUTHOR
33 export GIT_COMMITTER_EMAIL
=$SVN_AUTHOR"@"$SVN_UUID
34 export GIT_COMMITTER_DATE
="`date -juf '%FT%T' $SVN_DATE '+%F %T %z' 2>/dev/null`"
35 export GIT_AUTHOR_NAME
="$GIT_COMMITTER_NAME"
36 export GIT_AUTHOR_EMAIL
="$GIT_COMMITTER_EMAIL"
37 export GIT_AUTHOR_DATE
="$GIT_COMMITTER_DATE"
39 [ $REV -gt 1 ] && GIT_PARENT
="-p `git show-ref --head -s HEAD`"
40 GIT_TREE
=`git write-tree`
41 echo git commit-tree
$GIT_TREE $GIT_PARENT
42 GIT_COMMIT
=`svk pg --revprop -r$REV svn:log | git commit-tree $GIT_TREE $GIT_PARENT`
43 git update-ref HEAD
$GIT_COMMIT