forked from endymuhardin/belajarGit
-
Notifications
You must be signed in to change notification settings - Fork 9
/
migrasi-svn-git
50 lines (32 loc) · 1.42 KB
/
migrasi-svn-git
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
Langkah Migrasi dari Subversion ke Git
1. Dump repository Subversion
svnadmin dump /path/ke/repo/svn > nama-file-dump
2. Copy ke pc kita sendiri supaya cepat prosesnya
3. Restore lagi
svnadmin load /path/ke/repo/svn < nama-file-dump
4. Checkout
svn co file:///path/ke/repo/svn checkout-project-svn
5. Generate authors file
#!/usr/bin/env bash
authors=$(svn log -q | grep -e '^r' | awk 'BEGIN { FS = "|" } ; { print $2 }' | sort | uniq)
for author in ${authors}; do
echo "${author} = NAME <USER@DOMAIN>";
done
Simpan hasilnya ke file-authors.txt.
Ini akan kita gunakan di langkah selanjutnya.
6. Checkout lagi menggunakan git-svn
git svn clone --stdlayout --no-metadata -A file-authors.txt file:///path/ke/repo git-svn-migrasi-project
7. Masuk ke folder hasil clone
cd git-svn-migrasi-project
8. Konversi branch svn menjadi branch git
git branch -r | grep -v tags | sed -rne 's, *([^@]+)$,\1,p' | while read branch; do echo "git branch $branch $branch"; done | sh
9. Konversi tag svn menjadi tag git
git branch -r | sed -rne 's, *tags/([^@]+)$,\1,p' | while read tag; do echo "git tag $tag 'tags/${tag}^'; git branch -r -d tags/$tag"; done | sh
10. Konversi svn-ignore menjadi gitignore
git svn show-ignore > .gitignore
git add .gitignore
git commit -m "konversi svn ignore menjadi gitignore"
11. Clone supaya bersih
cd ..
git clone --bare git-svn-migrasi-project nama-project.git
12. Copy ke server untuk disharing menggunakan Gitosis