ඉතිහාසය සහිත SVN ගබඩාවක් නව Git ගබඩාවකට සංක්‍රමණය කරන්නේ කෙසේද?


1511

මම Git අත්පොත, නිති අසන ප්‍රශ්න, Git - SVN බිඳ වැටීමේ පා course මාලාව යනාදිය කියවා ඇත්තෙමි.

SVN නිධිය: svn://myserver/path/to/svn/repos

Git නිධිය: git://myserver/path/to/git/repos

git-do-the-magic-svn-import-with-history \
svn://myserver/path/to/svn/repos \
git://myserver/path/to/git/repos

එය එතරම් සරල යැයි මම අපේක්ෂා නොකරමි, එය තනි විධානයක් වනු ඇතැයි මම අපේක්ෂා නොකරමි. නමුත් මම බලාපොරොත්තු වන්නේ එය කිසිවක් පැහැදිලි කිරීමට උත්සාහ නොකිරීමයි - මෙම උදාහරණය අනුව ගත යුතු පියවර මොනවාදැයි කීමට.


6
එය පහසු වෙමින් පවතී, මම එය තනිවම
ජෝන් මෝසෙස්

පහත කේසිගේ පිළිතුර භාවිතා කරන්න, නමුත් ඔබ "svn clone ..." විධානය ක්‍රියාත්මක කිරීමට පෙර, ඔබේ user.txt ගොනුවට අතිරේක "දෘශ්‍ය SVN සේවාදායකය" රේඛාව එකතු කරන්නේ කෙසේදැයි බලන්න ... මෙහි: stackoverflow.com/questions/8971208/ …
මැක්ගයිවර්

1
එසේම, ඔබේ GitHub පැතිකඩෙහි "විද්‍යුත් තැපැල් පුද්ගලික විකල්පයක් පරික්ෂා කර ඇත්නම්, මෙය පරිශීලකයින්ගේ ඊමේල් ලිපිනය ලෙස භාවිතා කරන්න. අනාචාරයේ මත.
MacGyver


ගූගල්
කේතයෙන්

Answers:


531

මැජික්:

$ git svn clone http://svn/repo/here/trunk

Git සහ SVN ඉතා වෙනස් ආකාරයකින් ක්‍රියාත්මක වේ. ඔබ Git ඉගෙන ගත යුතු අතර, ඔබට SVN උඩුමහලේ වෙනස්කම් නිරීක්ෂණය කිරීමට අවශ්‍ය නම්, ඔබ ඉගෙන ගත git-svnයුතුය. මෙම git-svn ප්රධාන පිටුව හොඳ උදාහරණ ශාඛාව :

$ git svn --help

140
As කේසි වෙතින් ලැබෙන පිළිතුර මුල් ප්‍රශ්නයට වඩා හොඳ පිළිතුරු සපයයි.
ඩග් විල්සන්

3
මෙය අතු සහ සියල්ල තබා ගනීවිද? නැත්නම් කඳ ක්ලෝන කරන්නද?
අයිල්ඩෝසා

7
Ild අයිල්ඩෝසා: මෙය කඳට ක්ලෝන කරයි. විකල්පයක් සඳහා කේසිගේ පිළිතුර බලන්න.
sleske

3
Og ඩග්විල්සන් නමුත් මට මෙහි කේසිගේ පිළිතුරක් නොපෙනේ. "පරිශීලක ගොනුවක් සාදන්න" සමඟ ආරම්භ වන කතුවරුන් 13 දෙනෙකු සමඟ පහත පිළිතුර තිබේද?
ඇන්ඩ්‍රි රීජෙන්ටොව්

68
මෙහි බොහෝ අදහස් දැක්වීම්වල සඳහන් "කේසිගේ පිළිතුර" කුමක්දැයි කල්පනා කරන වෙනත් ඕනෑම කෙනෙකුට, මෙය මෙයයි (කේසි ඔහුගේ නිකට cmcginty ලෙස වෙනස් කළේය).
ස්ටෙෆාන් මොනොව්

1563

users.txtSVN භාවිතා කරන්නන් Git වෙත සිතියම් ගත කිරීම සඳහා පරිශීලක ගොනුවක් සාදන්න (එනම් ):

user1 = First Last Name <email@address.com>
user2 = First Last Name <email@address.com>
...

ඔබගේ පවතින SVN ගබඩාවෙන් අච්චුවක් තැනීමට ඔබට මෙම එක්-ලයිනර් භාවිතා කළ හැකිය:

svn log -q | awk -F '|' '/^r/ {sub("^ ", "", $2); sub(" $", "", $2); print $2" = "$2" <"$2">"}' | sort -u > users.txt

ගොනුවේ නැති SVN පරිශීලකයෙකු අතුරුදහන් වුවහොත් SVN නතර වේ. නමුත් ඊට පසු ඔබට ගොනුව යාවත්කාලීන කර ඔබ නතර කළ ස්ථානය ලබා ගත හැකිය.

දැන් නිධියෙන් SVN දත්ත අදින්න:

git svn clone --stdlayout --no-metadata --authors-file=users.txt svn://hostname/path dest_dir-tmp

මෙම විධානය මඟින් නව Git ගබඩාවක් නිර්මාණය කර dest_dir-tmpSVN නිධිය ඇද ගැනීමට පටන් ගනී. "--Stdlayout" ධජයෙන් ඇඟවෙන්නේ ඔබට පොදු "කඳ /, ශාඛා /, ටැග් /" SVN පිරිසැලසුම ඇති බවයි. ඔබගේ පවර නම්, හුරු පුරුදු වීම --tags, --branches, --trunkවිකල්ප (පොදුවේgit svn help ).

පොදු ප්රොටෝකෝල ඉඩ ඇත: svn://, http://, https://. URL ය http://svn.mycompany.com/myrepo/repository වැනි මූලික ගබඩාව ඉලක්ක කළ යුතුය . URL එක string යුතු නොවේ ඇතුළත් /trunk, /tagහෝ/branches .

මෙම විධානය ක්‍රියාත්මක කිරීමෙන් පසු එය බොහෝ විට පෙනෙන්නේ මෙහෙයුම "එල්ලී / කැටි වී" ඇති බවත්, නව ගබඩාව ආරම්භ කිරීමෙන් පසු එය දිගු කලක් සිරවී ඇති බවත් සාමාන්‍ය දෙයකි. අවසානයේදී ඔබ සංක්‍රමණය වන බව අඟවන ලොග් පණිවිඩ ඔබට පෙනෙනු ඇත.

ඔබ --no-metadataධජය අතහැර දැමුවහොත් , Git විසින් අනුරූපී SVN සංශෝධනය පිළිබඳ තොරතුරු බැඳීම් පණිවිඩයට එකතු කරනු ඇත (එනම්git-svn-id: svn://svn.mycompany.com/myrepo/<branchname/trunk>@<RevisionNumber> <Repository UUID> )

පරිශීලක නමක් සොයාගත නොහැකි නම්, ඔබගේ users.txtගොනුව යාවත්කාලීන කරන්න :

cd dest_dir-tmp
git svn fetch

ඔබට විශාල ව්‍යාපෘතියක් තිබේ නම්, සියලු උපසිරැසි කොමිස් ලබා ගන්නා තෙක් ඔබට එම අවසාන විධානය කිහිප වතාවක් පුනරාවර්තනය කිරීමට සිදුවනු ඇත:

git svn fetch

සම්පුර්ණ වූ විට, Git විසින් SVN trunkනව ශාඛාවකට පරීක්ෂා කරනු ඇත. වෙනත් ඕනෑම ශාඛාවක් දුරස්ථ ලෙස සකසා ඇත. ඔබට අනෙක් SVN ශාඛා සමඟ මෙය නැරඹිය හැකිය:

git branch -r

ඔබේ ගබඩාවේ වෙනත් දුරස්ථ ශාඛා තබා ගැනීමට ඔබට අවශ්‍ය නම්, එක් එක් ශාඛාව සඳහා අතින් අතින් ප්‍රාදේශීය ශාඛාවක් සෑදීමට ඔබට අවශ්‍යය. (කඳ / මාස්ටර් මඟ හරින්න.) ඔබ මෙය නොකරන්නේ නම්, අවසාන අදියරේදී අතු ක්ලෝන නොවනු ඇත.

git checkout -b local_branch remote_branch
# It's OK if local_branch and remote_branch are the same name

ටැග් අතු ලෙස ආනයනය කෙරේ. ඔබ දේශීය ශාඛාවක් සෑදිය යුතුය, ටැග් එකක් සාදා ශාඛාව මකා දැමිය යුතුය. "V1" ටැගය සමඟ එය කිරීමට:

git checkout -b tag_v1 remotes/tags/v1
git checkout master
git tag v1 tag_v1
git branch -D tag_v1

ඔබේ GIT-SVN නිධිය පිරිසිදු Git ගබඩාවකට ක්ලෝන කරන්න:

git clone dest_dir-tmp dest_dir
rm -rf dest_dir-tmp
cd dest_dir

දුරස්ථ ශාඛා වලින් ඔබ කලින් නිර්මාණය කළ දේශීය ශාඛා දුරස්ථ ශාඛා ලෙස පිටපත් කරනු ලැබුවේ නව ක්ලෝන ගබඩාවට පමණි. (කඳ / මාස්ටර් මඟ හරින්න.) ඔබට තබා ගැනීමට අවශ්‍ය සෑම ශාඛාවක් සඳහාම:

git checkout -b local_branch origin/remote_branch

අවසාන වශයෙන්, දැන් මකාදැමූ තාවකාලික ගබඩාවට යොමු වන ඔබගේ පිරිසිදු Git ගබඩාවෙන් දුරස්ථය ඉවත් කරන්න:

git remote rm origin

37
ඊල්කේගේ මෙම බ්ලොග් සටහන ඉහත පිළිතුර සඳහා විශිෂ්ට හරස් යොමු කිරීමකි. blokspeed.net/blog/2010/09/converting-from-subversion-to-git
kgriffs

4
මෙය 99% ක් නියමයි, මෙම පියවරයන් අනුගමනය කරමින්, මට ශාඛා හැර අනෙක් සියල්ල පිළිවෙලට ලැබුණි: අවසාන පියවරෙන් පසු ඒවා දුරස්ථ විය (මම විධානය කළ විට අතුරුදහන් විය: git remote rm origin)
ඩර්ටි හෙන්රි

4
GitHub ඉතා පහසු පියවරෙන් පියවර ඇත: github.com/nirvdrum/svn2git#readme
Dan Nissenbaum

8
වින්ඩෝස් යටතේ සිටින අය සඳහා, මම මෙම ක්‍රමය මත පදනම්ව පවර්ෂෙල් ස්ක්‍රිප්ට් එකක් නිර්මාණය කළෙමි: gist.github.com/Gimly/90df046dc38181bb18de
Gimly

5
ඉතිහාසයක් ඇති විශාල ගබඩාවලට අනතුරු ඇඟවීම , මෙය මන්දගාමී හා වෙහෙසකාරී ය . මම පැරණි ශාඛා සියල්ලම සංක්‍රමණය කිරීමට උත්සාහ කිරීම අත්හැර දැමුවෙමි.
ජෙස්

196

ඔබේ උපසිරැසි ගබඩාව Git ගබඩාවකට පිරිසිදු ලෙස සංක්‍රමණය කරන්න . පළමුව ඔබ විසින් උපසිරැසි කතෘගේ නම් සිතියම් ගත කරන ගොනුවක් නිර්මාණය කළ යුතුය ~/authors.txt.

jmaddox = Jon Maddox <jon@gmail.com>
bigpappa = Brian Biggs <bigpappa@gmail.com>

එවිට ඔබට උපසිරැසි දත්ත Git ගබඩාවකට බාගත කළ හැකිය:

mkdir repo && cd repo
git svn init http://subversion/repo --no-metadata
git config svn.authorsfile ~/authors.txt
git svn fetch

ඔබ මැක්හි සිටී නම්, git-svnස්ථාපනය කිරීමෙන් ඔබට මැක්පෝර්ට්ස් වෙතින් ලබා ගත හැකිය git-core +svn.

ඔබේ උපසිරැසි නිධිය ඔබ කැමති යන්ත්‍ර ගබඩාවක තිබේ නම්, ඔබට මෙම සින්ටැක්ස් ආරම්භක පියවර සඳහා භාවිතා කළ හැකිය, එසේ නොමැතිනම් සියල්ලම එක හා සමානයි:

git svn init file:///home/user/repoName --no-metadata

1
මම අනෙක් පිළිතුර මත ප්රකාශ කල පරිදි, මම අවට අවකාශ ඉවත් කිරීමට සිදු =දී users.txtආනයන ගබ්සා මම හිස් ගබඩාව ලබා ලදී නිසා.
සෙබස්තියන් ග්‍රිග්නෝලි

8
ආ! සරල හා effective ලදායී පැහැදිලි කිරීම. මගේ නඩුවේ file:///වැඩ කිරීම ප්‍රතික්ෂේප කළ අතර, මම ඒ වෙනුවට svnserve.exe --daemonභාවිතා කළෙමි svn://localhost/home/user/repo.
ඩැනියෙල් රීස්

මගේ මැක් ධාවනය වන මවුන්ටන් ලයන් හි, මම එක්ස් කේතයට ගොස් මනාප කවුළුවෙහි බාගැනීම් පටිත්තෙහි ඇති විධාන රේඛා මෙවලම් ස්ථාපනය කරන තෙක් git svn ක්‍රියා නොකරනු ඇත. විකල්පයක් ලෙස, මට ඇපල් සමාගමේ සංවර්ධක වෙබ් අඩවියෙන් සොයාගත් OS X මවුන්ටන් ලයන් සඳහා විධාන රේඛා මෙවලම් ස්ථාපනය කළ හැකිව තිබුණි.
ඩ්‍රූ

3
මගේ නඩුව සඳහා මට ගොනුව පරිවර්තනය කිරීමට සිදු authors.txtවිය utf-8 without BOM.
සිල්වන්

මෙය මට බෙහෙවින් ප්‍රයෝජනවත් විය! මට දේශීය ගබඩාව ලැබුණු පසු, "ඔබේ GIT-SVN නිධිය පිරිසිදු Git ගබඩාවකට ක්ලෝන කරන්න" යනුවෙන් ඇරඹෙන cmcginty ගේ පෝස්ට් එක භාවිතා කළෙමි: "මම හිතන්නේ මම කැමති වීමට ප්‍රධාන හේතුව ou සෝල්ගේ පිළිතුර භාවිතා කිරීමයි git svn init, git svn configපසුව git svn fetchඑය පහසු වූ විට එය මේ ආකාරයෙන් කිරීමට, එය නිවැරදි කර ගැනීම සඳහා මට කිහිප වතාවක්ම ලබා ගැනීමට සිදු විය. cmcginty ගේ තනි රේඛාව git svn clone, මේ තුනම මට මඩ ගොහොරුවක් විය .
මයික්

70

මම svn2git ස්ක්‍රිප්ට් භාවිතා කළ අතර එය චාම් එකක් මෙන් ක්‍රියා කරමි.


4
ප්‍ර: මෙය ටැග් සහ ශාඛා නම් වලින් අවකාශය නිවැරදි කරයිද (svn වලින් අවසර දී ඇති අතර git හි අවසර නැත)
spazm

2
එය භාවිතා කිරීමට මෙම මාර්ගෝපදේශය ප්‍රයෝජනවත් වේ: troyhunt.com/2014/08/migrating-from-subversion-to-git-with.html
මෝර්ටන් හොල්ම්ගාඩ්

මෙය මට ගැටලුවක් සමඟ අසමත් විය: groups.google.com/forum/#!topic/msysgit/7MQVwRO-2N4 - මෙයද බලන්න: github.com/nirvdrum/svn2git/issues/50 විසඳුම මෙහි විය: stackoverflow.com/questions / 3009738 /…
HDave

පිළිතුරු පැහැදිලි කිරීම වඩාත් සුදුසුය, එසේ නොමැතිනම් අපි ස්ක්‍රිප්ට් කිඩ්ඩි නිෂ්පාදනය කරමු.
ජොෂ් හබ්දාස්

ඔබේ ශාඛා සියල්ලම SVN හි මූලයේ තිබේ නම් සහ ඔබට කඳ හෝ ටැග් නොමැති නම් කුමක් කළ යුතුද?
කල්

58

නිරන්තරයෙන් git-svn භාවිතා කිරීමට පෙර Git සමඟ සැපපහසු වීමට මම යෝජනා කරමි, එනම් SVN මධ්‍යගත ගබඩාව ලෙස තබා ගැනීම සහ දේශීයව Git භාවිතා කිරීම.

කෙසේ වෙතත්, සියලු ඉතිහාසය සහිත සරල සංක්‍රමණයක් සඳහා, සරල පියවර කිහිපයක් මෙන්න:

දේශීය repo ආරම්භ කරන්න:

mkdir project
cd project
git svn init http://svn.url

සංශෝධන ආනයනය කිරීම ආරම්භ කිරීමට ඔබට කොපමණ දුරක් අවශ්‍ය දැයි සලකුණු කරන්න:

git svn fetch -r42

(හෝ සියලුම සංශෝධන සඳහා "git svn fetch")

එතැන් සිට සියල්ල ලබා ගන්න:

git svn rebase

Gitk සමඟ ආනයනයේ ප්‍රති result ලය ඔබට පරීක්ෂා කළ හැකිය. මෙය වින්ඩෝස් මත වැඩ කරයිදැයි මට විශ්වාස නැත, එය OSX සහ ලිනක්ස් මත ක්‍රියා කරයි:

gitk

ඔබේ SVN repo දේශීයව ක්ලෝන කර ඇති විට, පහසු සහයෝගීතාවයක් සඳහා එය මධ්‍යගත Git repo වෙත තල්ලු කිරීමට ඔබට අවශ්‍ය විය හැකිය.

පළමුව ඔබේ හිස් දුරස්ථ repo එක සාදන්න (සමහර විට GitHub හි තිබේද?):

git remote add origin git@github.com:user/project-name.git

ඉන්පසු, ඔබේ ප්‍රධාන ශාඛාව විකල්ප ලෙස සමමුහුර්ත කරන්න, එවිට අදින්න මෙහෙයුම දුරස්ථ මාස්ටර් ඔබේ දේශීය ස්වාමියා සමඟ ස්වයංක්‍රීයව ඒකාබද්ධ වේ.

git config branch.master.remote origin
git config branch.master.merge refs/heads/master

ඊට පසු, git_remote_branchදුරස්ථ ශාඛා සමඟ කටයුතු කිරීමට උපකාරී වන මගේම මෙවලමක් අත්හදා බැලීමට ඔබ උනන්දු විය හැකිය :

පළමු පැහැදිලි කිරීමේ ලිපිය: " දුරස්ථ ශාඛා ලබා ගන්න "

නවතම අනුවාදය සඳහා පසු විපරම: " git_remote_branch සමඟ සහයෝගයෙන් කටයුතු කිරීමට කාලයයි "


අතිශයින්ම ප්‍රයෝජනවත්, මෙය පරිපූර්ණව ක්‍රියාත්මක විය. ඔබ දුරස්ථ ගබඩාවකට සමමුහුර්ත කරන්නේ නම් ගත යුතු අවසාන පියවරක් ඇති බව මම එකතු කරමි. Git වින්‍යාස පියවරෙන් පසු, මට අවශ්‍ය වූයේgit push origin master
mag382

32

Subversion සිට Git වෙත සුමට සංක්‍රමණය වීම සඳහා නව විසඳුමක් ඇත (හෝ එකවර දෙකම භාවිතා කිරීම සඳහා): SubGit .

මම මේ ව්‍යාපෘතියේ වැඩ කරන්නේ මමමයි. අපි අපගේ ගබඩාවල SubGit භාවිතා කරමු - මගේ කණ්ඩායමේ සමහර අය Git සහ සමහර Subversion භාවිතා කරන අතර මෙතෙක් එය ඉතා හොඳින් ක්‍රියාත්මක වේ.

SubGit සමඟ Subversion සිට Git වෙත සංක්‍රමණය වීමට ඔබ ධාවනය කළ යුතුය:

$ subgit install svn_repos
...
TRANSLATION SUCCESSFUL 

ඊට පසු ඔබට svn_repos / .git හි Git නිධිය ලැබෙනු ඇති අතර එය ක්ලෝන කළ හැකිය, නැතහොත් Subversion සහ මෙම නව Git ගබඩාව එකට භාවිතා කිරීම දිගටම කරගෙන යනු ඇත: SubGit මඟින් දෙකම සැමවිටම සමමුහුර්තව තබා ගැනීමට වග බලා ගනී.

ඔබේ උපසිරැසි ගබඩාවේ විවිධ ව්‍යාපෘති අඩංගු නම්, svn_repos / git බහලුම තුළ බහු Git ගබඩාවන් නිර්මාණය වේ. පරිවර්තනය ක්‍රියාත්මක කිරීමට පෙර එය රිසිකරණය කිරීමට පහත දේ කරන්න:

$ subgit configure svn_repos
$ edit svn_repos/conf/subgit.conf (change mapping, add authors mapping, etc)
$ subgit install svn_repos

SubGit සමඟ ඔබට පිරිසිදු Git (git-svn නොවේ) වෙත සංක්‍රමණය වී ඔබට අවශ්‍ය තාක් කල් Subversion තබා ගනිමින් එය භාවිතා කිරීම ආරම්භ කළ හැකිය (උදාහරණයක් ලෙස ඔබ දැනටමත් වින්‍යාස කර ඇති ගොඩනැගිලි මෙවලම් සඳහා).

මෙය උපකාරී වේ යැයි සිතමු!


4
එක් වරක් ආනයනය කිරීම ( subgit importවිධානය භාවිතා කිරීම ) සඳහා බලපත්‍රයක් අවශ්‍ය නොවන බව සලකන්න . svn:ignoreදේපල .gitignoreලිපිගොනු වලට නිවැරදිව පරිවර්තනය කිරීම ද ඇතුළත් වේ.
krlmlr

1
SubGit මගේ පුද්ගලික යතුර හෝ විධාන රේඛාවේ මා තැබූ කොඩි හඳුනා නොගනී. ප්‍රලේඛනය ඉතා දුර්වලයි. මෙය ශක්‍ය විකල්පයක් නොවේ git svn.
pfnuesel

1
දෝෂය: 'svn_repos' වලංගු වින්‍යාසගත ස්ථානයක් නොවේ; SubGit වින්‍යාස ගොනුව අස්ථානගත වී ඇත.
ජෝන් ඩේවිස්

19

නිල git-svn manpage බලන්න . විශේෂයෙන්, "මූලික උදාහරණ" යටතේ බලන්න:

උපසිරැසි කළමනාකරණය කළ සම්පූර්ණ ව්‍යාපෘතියකට ලුහුබැඳීම සහ දායක වීම (කඳ, ටැග් සහ අතු වලින් සම්පූර්ණයි):

# Clone a repo (like git clone):
    git svn clone http://svn.foo.org/project -T trunk -b branches -t tags

ඔබේ ක්ලෝන විධානය ක්‍රියාත්මක විය, ඉහත අය මට හිස් git repos හැර අන් කිසිවක් ලබා දුන්නේ නැත. එකම වෙනස පැහැදිලිව පෙනෙන '-T කඳ' බව පෙනේ.
user1984717

14

Pro Git 8.2 එය පැහැදිලි කරයි: http://git-scm.com/book/en/Git-and-Other-Systems-Migrating-to-Git


1
Pro Git පැහැදිලි කිරීම සඳහා ටැග් සහ ශාඛා සංක්‍රමණය කිරීම ඇතුළත් වේ. එය svn විධානයන්ට වඩා දේශීය mv භාවිතා කරයි. දක්ෂයි.
spazm

14

SubGit (මරණයේ නිල් තිරය එදිරිව)

subgit import --svn-url url://svn.serv/Bla/Bla  directory/path/Local.git.Repo

ඒ සියල්ලම.

+ පළමු විධානය මඟින් නිර්මාණය කරන ලද Git ගබඩාවක් වන SVN වෙතින් යාවත්කාලීන කිරීම.

subgit import  directory/path/Local.git.Repo

මම විශාල ගබඩාවක් සඳහා ක්ෂණිකව Git වෙත සංක්‍රමණය වීමට ක්‍රමයක් භාවිතා කළෙමි.
ඇත්ත වශයෙන්ම ඔබට යම් සූදානමක් අවශ්යයි.
නමුත් ඔබ කිසිසේත් සංවර්ධන ක්‍රියාවලිය නතර නොකරනු ඇත.

මෙන්න මගේ මාර්ගය.

මගේ විසඳුම පෙනේ:

  • SVN Git ගබඩාවකට සංක්‍රමණය කරන්න
  • කණ්ඩායම මාරු වීමට මොහොතකට පෙර Git ගබඩාව යාවත්කාලීන කරන්න .

විශාල SVN ගබඩාවක් සඳහා සංක්‍රමණය බොහෝ කාලයක් ගතවේ.
නමුත් සම්පුර්ණ කළ සංක්‍රමණය යාවත්කාලීන කිරීම තත්පර කිහිපයකින්.

ඇත්ත වශයෙන්ම මම භාවිතා කරන්නේ SubGit , මාමා. git-svn මාව මරණයේ නිල් තිරය බවට පත් කරයි. නිරන්තරයෙන්. Git-svn මට Git ගේ " ගොනු නාමය ඉතා දිගු " මාරක දෝෂයක් නිසා කම්මැලි වේ.

පියවර

1. SubGit බාගන්න

2. සංක්‍රමණ සහ විධාන යාවත්කාලීන කිරීම සකස් කරන්න.

අපි එය වින්ඩෝස් සඳහා කරන බව කියමු (එය ලිනක්ස් වෙත වරාය කිරීම සුළුපටු නොවේ).
SubGit හි ස්ථාපන බින් ඩිරෙක්ටරියේ (subgit-2.XX \ bin), .bat ගොනු දෙකක් සාදන්න.

සංක්‍රමණය සඳහා ගොනුවක / විධානයක අන්තර්ගතය:

start    subgit import --svn-url url://svn.serv/Bla/Bla  directory/path/Local.git.Repo

"ආරම්භක" විධානය මෙහි විකල්පයකි (වින්ඩෝස්). එය ආරම්භයේ දෝෂ දැකීමට ඉඩ දෙන අතර උපසිරැසිය සම්පූර්ණ කිරීමෙන් පසු කවචයක් විවෘත වේ.

Git-svn ට සමාන අමතර පරාමිතීන් ඔබට මෙහි එක් කළ හැකිය . SVN කතුවරුන්ගේ විද්‍යුත් තැපැල් ලිපිනයේ වසම නිවැරදි කිරීමට මම භාවිතා කරන්නේ --default-domain myCompanyDomain.com පමණි .
මා සතුව සම්මත SVN නිධියෙහි ව්‍යුහය (කඳ / ශාඛා / ටැග්) ඇති අතර අපට “කතුවරුන් සිතියම්ගත කිරීම” සමඟ කරදරයක් නොවීය. ඒ නිසා මම තවත් කිසිවක් කරන්නේ නැහැ.

(ඔබට ශාඛා වැනි ටැග් සංක්‍රමණය කිරීමට අවශ්‍ය නම් හෝ ඔබේ එස්.වී.එන් සතුව බහු ශාඛා / ටැග් ෆෝල්ඩර තිබේ නම්, වඩාත් වාචික උපජිට් ප්‍රවේශය භාවිතා කිරීමට ඔබ සලකා බැලිය හැකිය )

ඉඟිය 1 : දේවල් වේගවත් වන්නේ කෙසේදැයි බැලීමට - අවම-සංශෝධනය YourSvnRevNumber භාවිතා කරන්න (යම් ආකාරයක නිදොස් කිරීම). විසඳූ කර්තෘගේ නම් හෝ ඊමේල් බැලීම විශේෂයෙන් ප්‍රයෝජනවත් වේ.
නැතහොත් සංක්‍රමණ ඉතිහාස ගැඹුර සීමා කිරීමට.

ඉඟිය 2 : සංක්‍රමණය බාධා කළ හැකිය ( Ctrl+ C) සහ ඊළඟ යාවත්කාලීන කිරීමේ විධානය / ගොනුව ක්‍රියාත්මක කිරීමෙන් ප්‍රතිෂ් ored ාපනය වේ.
විශාල ගබඩාවන් සඳහා මෙය කිරීමට මම උපදෙස් දෙන්නේ නැත. මට "ජාවා + වින්ඩෝස් ව්‍යතිරේකය" මතකය ලැබී ඇත.

ඉඟිය 3 : ඔබේ ප්‍රති result ලයේ හිස් ගබඩාවක පිටපතක් සෑදීම වඩා හොඳය.

යාවත්කාලීන කිරීම සඳහා ගොනුවක / විධානයක අන්තර්ගතය:

start    subgit import  directory/path/Local.git.Repo

ඔබේ Git ගබඩාවට අවසන් කණ්ඩායමේ කොමිස් ලබා ගැනීමට ඔබට අවශ්‍ය ඕනෑම වේලාවක එය ක්‍රියාත්මක කළ හැකිය.

අවවාදයයි! ඔබේ හිස් ගබඩාවට අත නොතබන්න (උදාහරණයක් ලෙස ශාඛා නිර්මාණය කිරීම).
ඔබ ඊළඟ මාරක දෝෂය ගනු ඇත:

සොයාගත නොහැකි දෝෂය: සමමුහුර්ත වී ඇති අතර ඒවා සමමුහුර්ත කළ නොහැක ... උපසිරැසි සංශෝධන Git වලට පරිවර්තනය කිරීම ...

3. පළමු විධානය / ගොනුව ධාවනය කරන්න. විශාල ගබඩාවක් සඳහා වැඩි කාලයක් ගතවනු ඇත. මගේ නිහතමානී ගබඩාවට පැය 30 ක්.

ඒ සියල්ලම.
දෙවන ගොනුව / විධානය ක්‍රියාත්මක කිරීමෙන් ඔබට ඕනෑම වේලාවක SVN වෙතින් ඔබේ Git ගබඩාව යාවත්කාලීන කළ හැකිය. ඔබේ සංවර්ධන කණ්ඩායම Git වෙත මාරු කිරීමට පෙර.
එය තත්පර කිහිපයක් ගතවනු ඇත.



තවත් එක් ප්‍රයෝජනවත් කාර්යයක් ඇත.

ඔබගේ දේශීය Git ගබඩාව දුරස්ථ Git ගබඩාවකට තල්ලු කරන්න

එය ඔබේ නඩුවද? අපි ඉදිරියට යමු.

  1. ඔබගේ දුරස්ථ වින්‍යාස කරන්න

ධාවනය:

$ git remote add origin url://your/repo.git
  1. ඔබගේ විශාල දේශීය Git ගබඩාව දුරස්ථ ගබඩාවකට මුලින් යැවීමට සූදානම් වන්න

පෙරනිමියෙන් ඔබේ Git හට විශාල කුට්ටි යැවිය නොහැක. මාරාන්තික: දුරස්ථ කෙළවර අනපේක්ෂිත ලෙස එල්ලී තිබේ

අපි ඒ සඳහා දුවමු:

git config --global http.postBuffer 1073741824

524288000 - 500 MB 1073741824 - 1 GB, ආදිය.

ඔබගේ දේශීය සහතිකයේ කරදර නිරාකරණය කරන්න . ඔබගේ git-server විසින් බිඳුණු සහතිකයක් භාවිතා කරන්නේ නම්.

මා අක්‍රීය කළ සහතික ඇත.

ඔබගේ Git සේවාදායකයට ඉල්ලීම් ප්‍රමාණයේ සීමාවන් නිවැරදි කිරීමට අවශ්‍ය විය හැකිය .

  1. සියලුම සංක්‍රමණයන් කණ්ඩායමේ දුරස්ථ Git ගබඩාවට තල්ලු කරන්න .

දේශීය Git සමඟ ධාවනය කරන්න:

git push origin --mirror

( පැරණි Git අනුවාද සඳහා git push origin '*: *' )

ඔබට පහත සඳහන් දේ ලැබුනේ නම්: දෝෂය: git හටගත නොහැක: එවැනි ලිපිගොනුවක් හෝ නාමාවලියක් නොමැත ... මට නම් මගේ ගබඩාවේ සම්පූර්ණ විනෝදය මෙම දෝෂය (පැය 30) විසඳයි. ඔබට ඊළඟ විධාන උත්සාහ කළ හැකිය

git push origin --all
git push origin --tags

නැතහොත් Git නැවත ස්ථාපනය කිරීමට උත්සාහ කරන්න ( මට වැඩක් නැත ). නැතහොත් ඔබට ඔබගේ සියලු ටැග් වලින් අතු සාදා ඒවා තල්ලු කළ හැකිය. නැත්නම්, හෝ, හෝ ...


10

reposurgeon

සංකීර්ණ අවස්ථා සඳහා, එරික් එස්. රේමන්ඩ් විසින් නැවත සකස් කිරීම තෝරා ගැනීමේ මෙවලම වේ. SVN ට අමතරව, එය fast-exportආකෘතිය හරහා තවත් බොහෝ අනුවාද පාලන පද්ධති සඳහා සහය දක්වයි , එසේම CVS . කතුවරයා ඉමාක්ස් සහ ෆ්‍රීබීඑස්ඩී වැනි පුරාණ ගබඩාවල සාර්ථක පරිවර්තනයන් වාර්තා කරයි .

මෙවලම දිගු ඉතිහාසයක් ඇති දුෂ්කර නිධි පිරිසැලසුම් සඳහා පවා පරිපූර්ණ පරිවර්තනයක් (SVN හි svn:ignoreගුණාංග .gitignoreලිපිගොනු බවට පරිවර්තනය කිරීම වැනි) අරමුණු කරයි . බොහෝ අවස්ථාවන්හීදී, වෙනත් මෙවලම් භාවිතා කිරීම පහසු වනු ඇත.

reposurgeonවිධාන රේඛාවේ ප්‍රලේඛනය සොයා බැලීමට පෙර , පරිවර්තන ක්‍රියාවලිය පියවරෙන් පියවර ඉදිරියට යන විශිෂ්ට DVCS සංක්‍රමණ මාර්ගෝපදේශය කියවීමට වග බලා ගන්න .


8

ඇට්ලේෂියන් වෙබ් අඩවියේ මෙම මාර්ගෝපදේශය මා සොයාගත් හොඳම එකකි:

https://www.atlassian.com/git/migration

මෙම මෙවලම - https://bitbucket.org/atlassian/svn-migration-scripts - ඔබේ කතුවරුන් උත්පාදනය කිරීම සඳහාද ඇත්තෙන්ම ප්‍රයෝජනවත් වේ.


මෙම පිටුව අපූරුයි, සහ IMHO හොඳම පිළිතුරයි! එය ඔබ වෙනුවෙන් බොහෝ කරදරකාරී වැඩ කරයි.
PfunnyGuy

8

ඔබ ස්ථාපනය කළ යුතුයි

git
git-svn

මෙම සබැඳියෙන් පිටපත් කරන ලදි http://john.albin.net/git/convert-subversion-to-git .

1. සියළුම උපසිරැසි කරුවන්ගේ ලැයිස්තුවක් ලබා ගන්න

උපසිරැසි කිරීම එක් එක් කැපවීම සඳහා පරිශීලක නාමය ලැයිස්තුගත කරයි. Git හි කොමිස් වලට වඩා පොහොසත් දත්ත ඇත, නමුත් එහි සරලම දෙය නම්, කැපවූ කතුවරයාට නමක් සහ විද්‍යුත් ලිපියක් ලැයිස්තුගත කිරීම අවශ්‍ය වේ. පෙරනිමියෙන් git-svn මෙවලම කර්තෘ සහ ඊමේල් ක්ෂේත්‍ර දෙකෙහිම SVN පරිශීලක නාමය ලැයිස්තු ගත කරයි. නමුත් සුළු වැඩ කොටසක් සමඟ, ඔබට සියලු SVN භාවිතා කරන්නන්ගේ ලැයිස්තුවක් සහ ඔවුන්ගේ අනුරූප Git නම සහ ඊමේල් මොනවාද යන්න නිර්මාණය කළ හැකිය. සරල svn පරිශීලක නාම නිසි Git බැඳීම් බවට පරිවර්තනය කිරීම සඳහා මෙම ලැයිස්තුව git-svn භාවිතා කළ හැකිය.

ඔබගේ දේශීය උපසිරැසි පිරික්සුම් මූලයේ සිට, මෙම විධානය ක්‍රියාත්මක කරන්න:

svn log -q | awk -F '|' '/^r/ {sub("^ ", "", $2); sub(" $", "", $2); print $2" = "$2" <"$2">"}' | sort -u > authors-transform.txt

එමඟින් සියලුම ලොග් පණිවිඩ උදුරා ගනු ඇත, පරිශීලක නාම උදුරා ගනී, ඕනෑම අනුපිටපත් පරිශීලක නාම ඉවත් කර, පරිශීලක නාම වර්ග කර ඒවා “කතෘ-ට්‍රාන්ස්ෆෝමර්.ටෙක්ස්ට්” ගොනුවකට දමනු ඇත. දැන් ගොනුවේ එක් එක් පේළිය සංස්කරණය කරන්න. උදාහරණයක් ලෙස, පරිවර්තනය කරන්න:

jwilkins = jwilkins <jwilkins>

මේ සඳහා:

jwilkins = John Albin Wilkins <johnalbin@example.com>

2. git-svn භාවිතා කරමින් උපවර්තන ගබඩාව ක්ලෝන කරන්න

git svn clone [SVN repo URL] --no-metadata -A authors-transform.txt --stdlayout ~/temp

මෙය සම්මත git-svn පරිණාමනය සිදු කරනු ඇත (ඔබ 1 වන පියවරේදී නිර්මාණය කළ කතෘවරුන්ගේ- transform.txt ගොනුව භාවිතා කරමින්) සහ ඔබේ නිවාස නාමාවලිය තුළ ඇති “~ / temp” ෆෝල්ඩරයේ git ගබඩාව තබන්න.

3. svn පරිවර්තනය කරන්න: .gitignore වෙත ගුණාංග නොසලකා හරින්න

ඔබේ svn repo භාවිතා කරන්නේ svn: ගුණාංග නොසලකා හරින්න, ඔබට මෙය පහසුවෙන් .gitignore ගොනුවක් බවට පරිවර්තනය කළ හැකිය:

cd ~/temp
git svn show-ignore > .gitignore
git add .gitignore
git commit -m 'Convert svn:ignore properties to .gitignore.'

4. නිධිය හිස් git නිධියකට තල්ලු කරන්න

පළමුවෙන්ම, හිස් ගබඩාවක් සාදා එහි පෙරනිමි ශාඛාව එස්.වී.එන්.

git init --bare ~/new-bare.git
cd ~/new-bare.git
git symbolic-ref HEAD refs/heads/trunk

ඉන්පසු තාවකාලික ගබඩාව නව හිස් ගබඩාවට තල්ලු කරන්න.

cd ~/temp
git remote add bare ~/new-bare.git
git config remote.bare.push 'refs/remotes/*:refs/heads/*'
git push bare

ඔබට දැන් ~ / temp නිධිය ආරක්ෂිතව මකා දැමිය හැකිය.

5. “කඳ” ශාඛාව “ස්වාමියා” ලෙස නම් කරන්න

ඔබේ ප්‍රධාන සංවර්ධන ශාඛාව “කඳ” ලෙස නම් කෙරෙනු ඇති අතර එය උපසිරැසි ගැන්වීමේ නමට ගැලපේ. ඔබට මෙය Git හි සම්මත “මාස්ටර්” ශාඛාව ලෙස නම් කිරීමට අවශ්‍ය වනු ඇත:

cd ~/new-bare.git
git branch -m trunk master

6. අතු සහ ටැග් පිරිසිදු කරන්න

git-svn විසින් සියළුම උපසිරැසි ටැග් “ටැග් / නම” ස්වරූපයෙන් Git හි ඉතා කෙටි ශාඛා බවට පත් කරයි. ඔබට එම ශාඛා සියල්ලම සත්‍ය Git ටැග් බවට පරිවර්තනය කිරීමට අවශ්‍ය වනු ඇත:

cd ~/new-bare.git
git for-each-ref --format='%(refname)' refs/heads/tags |
cut -d / -f 4 |
while read ref
do
  git tag "$ref" "refs/heads/tags/$ref";
  git branch -D "tags/$ref";
done

මෙම පියවර ටයිප් කිරීමට ටිකක් ගත වේ. :-) එහෙත්, කරදර නොවන්න; ඔබේ යුනික්ස් කවචය මඟින් එක් එක් ref සඳහා git සමඟ ආරම්භ වන අමතර දිගු විධානය සඳහා ද්විතියික විමසුමක් ලබා දෙනු ඇත.


7

GVHub සතුව දැන් SVN ගබඩාවකින් ආනයනය කිරීමේ අංගයක් ඇත . මම කවදාවත් උත්සාහ කළේ නැහැ.


3
GitHub හි වර්තමාන නිර්දේශය වන්නේ වෙනත් පිළිතුරකින්svn2git යෝජනා කරන ලද වැඩසටහන භාවිතා කිරීමයි .
ntc2

තරමක් විශාල ව්‍යාපෘති දෙකක් දැන් දෝෂ රහිතව ආනයනය කර ඇත. සියලුම SVN ශාඛා ආනයනය කර ඇත (repo මාවතේ unk කඳ කොටස භාවිතා නොකිරීම මතක තබා ගන්න). මම තවම නොදන්නා එක් දෙයක් නම් ගිතූබ් නව කොමිස් සොයා ගනීද යන්නයි.
Fr0sT

7

හුදෙක් git, SVN සහ bash භාවිතා කරමින් තරමක් දීර් answer පිළිතුරක්. සාම්ප්‍රදායික පිරිසැලසුම කඳ / ශාඛා / ටැග් නාමාවලි පිරිසැලසුම භාවිතා නොකරන SVN නිධි සඳහා පියවර එයට ඇතුළත් වේ (SVN මේ ආකාරයේ පිරිසැලසුම බලාත්මක කිරීමට කිසිසේත් කිසිවක් නොකරයි).

දායක වූ විවිධ පුද්ගලයින් සඳහා ඔබේ SVN repo පරිලෝකනය කිරීමට සහ සිතියම්කරණ ගොනුවක් සඳහා අච්චුවක් ජනනය කිරීමට පළමුව මෙම bash ස්ක්‍රිප්ට් භාවිතා කරන්න:

#!/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

නිර්මාණය කිරීමට මෙය භාවිතා කරන්න authorsඔබ භාවිතා කර ඔබගේ සංවර්ධකයින් විසින් කට්ටලය ලෙස සහ පරිශීලක ඊ-තැපැල් වෙත SVN පරිශීලක නාම සිතියම්ගත එහිදී ගොනු git configගුණ user.nameසහ user.email(GitHub වැනි සේවා සඳහා පමණක් ගැලපෙන ඊ-තැපැල් සහිත ප්රමාණවත් වන බව මතක තබාගන්න).

ඉන්පසු git svnසිතියම්කරණය ගැන පවසමින් svn නිධිය git නිධියකට ක්ලෝන කරන්න:

git svn clone --authors-file=authors --stdlayout svn://example.org/Folder/projectroot

මෙය ඇදහිය නොහැකි තරම් කාලයක් ගතවනු ඇත, මන්ද git svn පවතින සෑම ටැගයක් හෝ ශාඛාවක් සඳහාම සෑම සංශෝධනයක්ම තනි තනිව පරීක්ෂා කරනු ඇත. (SVN හි ඇති ටැග් සැබවින්ම ශාඛා පමණක් බව සලකන්න, එබැවින් ඒවා Git හි අවසන් වේ). ඔබට අවශ්‍ය නොවන SVN හි පැරණි ටැග් සහ අතු ඉවත් කිරීමෙන් ඔබට මෙය වේගවත් කළ හැකිය.

එකම ජාලයක හෝ එකම සේවාදායකයක මෙය ක්‍රියාත්මක කිරීමෙන් මෙය වේගවත් කළ හැකිය. එසේම, කිසියම් හේතුවක් නිසා මෙම ක්‍රියාවලියට බාධා ඇති වුවහොත් ඔබට එය නැවත භාවිතා කළ හැකිය

git svn rebase --continue

බොහෝ අවස්ථාවන්හිදී ඔබ මෙහි සිදු කර ඇත. ඔබේ SVN repo හි සාම්ප්‍රදායික නොවන පිරිසැලසුමක් තිබේ නම්, ඔබට SVN හි නාමාවලියක් තිබේ නම් ඔබට git ශාඛාවකට දැමීමට අවශ්‍ය නම් ඔබට අමතර පියවර කිහිපයක් කළ හැකිය.

සරලම දෙය නම් සම්මුතිය අනුගමනය කරන ඔබේ සේවාදායකයේ නව SVN repo එකක් සාදා svn copyඔබේ නාමාවලිය කඳට හෝ ශාඛාවකට දැමීමට භාවිතා කිරීමයි. ඔබේ බහලුම repo හි මුලෙහි තිබේ නම් මෙය එකම ක්‍රමය විය හැකිය, මා අවසන් වරට උත්සාහ කළ විට මෙය පරීක්ෂා git svnකිරීම ප්‍රතික්ෂේප කළේය.

ඔබට මෙය git භාවිතයෙන් කළ හැකිය. මක්නිසාද යත් git svn cloneඔබට git ශාඛාවකට දැමීමට අවශ්‍ය නාමාවලිය භාවිතා කරන්න.

ධාවනයෙන් පසු

git branch --set-upstream master git-svn
git svn rebase

මේ සඳහා Git 1.7 හෝ ඊට වැඩි අවශ්‍ය බව සලකන්න.


මෙම තොරතුරු මෙම සබැඳිය සමඟ ඒකාබද්ධ කිරීමට මම යෝජනා කරමි: sailmaker.co.uk/blog/2013/05/05/…
ජොආන් පීඑස්

7

මම පියවරෙන් පියවර උපදෙස් ( මෙහිSvn ටැග් git ටැග් බවට පරිවර්තනය කිරීම සහ svn ශාඛා git ශාඛා බවට පරිවර්තනය කිරීම ඇතුළුව svn git බවට පරිවර්තනය කිරීම සඳහා ) .

කෙටි අනුවාදය:

1) නිශ්චිත සංශෝධන අංකයකින් svn ක්ලෝන කරන්න. (සංශෝධන අංකය ඔබට සංක්‍රමණය වීමට අවශ්‍ය පැරණිතම විය යුතුය)

git svn clone --username=yourSvnUsername -T trunk_subdir -t tags_subdir -b branches_subdir -r aRevisionNumber svn_url gitreponame

2) svn දත්ත ලබා ගැනීම. මෙම පියවර එය බොහෝ කාලයක් ගතවන පියවරයි.

cd gitreponame
git svn fetch

දෝෂයකින් තොරව අවසන් වන තුරු git svn ලබා ගැනීම නැවත කරන්න

3) ප්‍රධාන ශාඛාව යාවත්කාලීන කරන්න

git svn rebase

4) යොමු පිටපත් කිරීමෙන් svn ශාඛා වලින් දේශීය ශාඛා සාදන්න

cp .git/refs/remotes/origin/* .git/refs/heads/

5) svn ටැග් git tags බවට පරිවර්තනය කරන්න

git for-each-ref refs/remotes/origin/tags | sed 's#^.*\([[:xdigit:]]\{40\}\).*refs/remotes/origin/tags/\(.*\)$#\2 \1#g' | while read p; do git tag -m "tag from svn" $p; done

6) ගිතුබ් වැනි වඩා හොඳ ස්ථානයක ගබඩාවක් තබන්න

git remotes add newrepo git@github.com:aUser/aProjectName.git
git push newrepo refs/heads/*
git push --tags newrepo

ඔබට වැඩි විස්තර අවශ්‍ය නම්, මගේ ලිපිය කියවන්න හෝ මගෙන් විමසන්න.


6

අපට git svn cloneපහත පරිදි විධාන භාවිතා කළ හැකිය .

  • svn log -q <SVN_URL> | awk -F '|' '/^r/ {sub("^ ", "", $2); sub(" $", "", $2); print $2" = "$2" <"$2">"}' | sort -u > authors.txt

ඉහත විධානය මඟින් එස්.වී.එන්.

  • svn log --stop-on-copy <SVN_URL>

ඔබේ SVN ව්‍යාපෘතිය නිර්මාණය වූ විට ඉහත විධානය මඟින් ඔබට පළමු සංශෝධන අංකය ලබා දෙනු ඇත.

  • git svn clone -r<SVN_REV_NO>:HEAD --no-minimize-url --stdlayout --no-metadata --authors-file authors.txt <SVN_URL>

ඉහත විධානය මඟින් දේශීයව Git ගබඩාව නිර්මාණය කරනු ඇත.

ගැටළුව වන්නේ එය අතු සහ ටැග් තල්ලු කිරීමට පරිවර්තනය නොකිරීමයි. ඔබට ඒවා අතින් කිරීමට සිදුවේ. උදාහරණයක් ලෙස ශාඛා සඳහා:

$ git remote add origin https://github.com/pankaj0323/JDProjects.git
$ git branch -a
* master
  remotes/origin/MyDevBranch
  remotes/origin/tags/MyDevBranch-1.0
  remotes/origin/trunk
$$ git checkout -b MyDevBranch origin/MyDevBranch
Branch MyDevBranch set up to track remote branch MyDevBranch from origin.
Switched to a new branch 'MyDevBranch'
$ git branch -a
* MyDevBranch
  master
  remotes/origin/MyDevBranch
  remotes/origin/tags/MyDevBranch-1.0
  remotes/origin/trunk
$

ටැග් සඳහා:

$git checkout origin/tags/MyDevBranch-1.0
Note: checking out 'origin/tags/MyDevBranch-1.0'.
You are in 'detached HEAD' state. You can look around, make experimental
changes and commit them, and you can discard any commits you make in this
state without impacting any branches by performing another checkout.

If you want to create a new branch to retain commits you create, you may
do so (now or later) by using -b with the checkout command again. Example:

  git checkout -b new_branch_name

HEAD is now at 3041d81... Creating a tag
$ git branch -a
* (detached from origin/tags/MyDevBranch-1.0)
  MyDevBranch
  master
  remotes/origin/MyDevBranch
  remotes/origin/tags/MyDevBranch-1.0
  remotes/origin/trunk
$ git tag -a MyDevBranch-1.0 -m "creating tag"
$git tag
MyDevBranch-1.0
$

දැන් දුරස්ථ git ගබඩාවට මාස්ටර්, ශාඛා සහ ටැග් තල්ලු කරන්න.

$ git push origin master MyDevBranch MyDevBranch-1.0
Counting objects: 14, done.
Delta compression using up to 8 threads.
Compressing objects: 100% (11/11), done.
Writing objects: 100% (14/14), 2.28 KiB | 0 bytes/s, done.
Total 14 (delta 3), reused 0 (delta 0)
To https://github.com/pankaj0323/JDProjects.git
 * [new branch]      master -> master
 * [new branch]      MyDevBranch -> MyDevBranch
 * [new tag]         MyDevBranch-1.0 -> MyDevBranch-1.0
$

svn2git උපයෝගීතාව

svn2git උපයෝගීතාව ශාඛා සහ ටැග් සමඟ අතින් උත්සාහයන් ඉවත් කරයි.

විධානය භාවිතා කර එය ස්ථාපනය කරන්න sudo gem install svn2git. ඉන්පසු පහත විධානය ක්‍රියාත්මක කරන්න.

  • $ svn2git <SVN_URL> --authors authors.txt --revision <SVN_REV_NO>

දැන් ඔබට අතු, ටැග් ලැයිස්තුගත කර ඒවා පහසුවෙන් තල්ලු කළ හැකිය.

$ git remote add origin https://github.com/pankaj0323/JDProjects.git
$ git branch -a
  MyDevBranch
* master
  remotes/svn/MyDevBranch
  remotes/svn/trunk
$ git tag
  MyDevBranch-1.0
$ git push origin master MyDevBranch MyDevBranch-1.0

ඔබට ශාඛා හා ටැග් 20 ක් ඇතැයි සිතන්න, පැහැදිලිවම svn2git ඔබට බොහෝ කාලයක් ඉතිරි කර දෙන අතර දේශීය විධානයන්ට වඩා මම එයට කැමතියි. එය ස්වදේශිකයා වටා ලස්සන ඔතාgit svn clone විධානය .

සම්පූර්ණ උදාහරණයක් සඳහා, මගේ බ්ලොග් සටහන බලන්න .


5

TortoiseGit මෙය කරයි. මෙම බ්ලොග් සටහන බලන්න: http://jimmykeen.net/articles/03-nov-2012/how-migrate-from-svn-to-git-windows-using-tortoise-clients

ඔව්, මම දන්නවා සබැඳිවලින් පිළිතුරු දීම විශිෂ්ට නොවන නමුත් එය විසඳුමක් නේද?


Archive.org හි මාර්ගගත කිරීමේ යන්ත්‍රය උත්සාහ කරන්න
CAD

3

මා විසින් සොයාගත් මෙම කෙටි තිර මාලාව මම තරයේ නිර්දේශ කරමි. කතුවරයා මූලික මෙහෙයුම් හරහා ඔබව ගෙන යන අතර තවත් දියුණු භාවිතයන් කිහිපයක් පෙන්වයි.


3

ඔබ SourceTree භාවිතා කරන්නේ නම් ඔබට මෙය යෙදුමෙන් කෙලින්ම කළ හැකිය. ගොටෝ ගොනුව -> නව / ක්ලෝන් ඉන්පසු පහත සඳහන් දේ කරන්න:

  1. දුරස්ථ SVN URL එක "ප්‍රභව මාර්ගය / URL" ලෙස ඇතුළත් කරන්න.
  2. විමසූ විට ඔබේ අක්තපත්‍ර ඇතුළත් කරන්න.
  3. දේශීය ෆෝල්ඩරයේ පිහිටීම "ගමනාන්ත මාර්ගය" ලෙස ඇතුළත් කරන්න.
  4. එයට නමක් දෙන්න.
  5. උසස් විකල්ප වලදී "වර්ගයේ දේශීය නිධිය සාදන්න" හි පහත වැටීමෙන් "Git" තෝරන්න.
  6. ඔබට ක්ලෝන කිරීම සඳහා සංශෝධනයක් විකල්ප වශයෙන් නියම කළ හැකිය.
  7. ක්ලෝනයට පහර දෙන්න.

SourceTree හි repo විවෘත කරන්න, එවිට ඔබගේ කැපවීමේ පණිවිඩ ද සංක්‍රමණය වී ඇති බව ඔබට පෙනෙනු ඇත.

දැන් නිධිය -> නිධිය සැකසීම් වෙත ගොස් නව දුරස්ථ repo විස්තර එක් කරන්න. ඔබට අවශ්‍ය නම් SVN දුරස්ථය මකන්න (මම මෙය කළේ "වින්‍යාස ගොනුව සංස්කරණය කරන්න" විකල්පය හරහාය.

ඔබ සුදානම් වන විට කේතය නව දුරස්ථ ගබඩාවට තල්ලු කර නිදහසේ කේත කරන්න.


ස්තූතියි, සුපිරි සහ වේගවත්!
රිකාඩ්

ස්තූතියි. මෙය මා වෙනුවෙන් වැඩ කළා. මම භාවිතා කරන්නේ SourceTree සහ Stash.
VK_217

3

සඳහා GitLab පරිශීලකයන් මම මෙතන SVN සිට සංක්රමණය ආකාරය පිළිබඳ කතාබහක දී දැම්මා:

https://gist.github.com/leftclickben/322b7a3042cbe97ed2af

SVN සිට GitLab වෙත සංක්‍රමණය වීමට පියවර

පිහිටුවීම

  • SVN සත්කාරකත්වය දරයි svn.domain.com.au.
  • SVN හරහා ප්‍රවේශ විය හැකිය http(වෙනත් ප්‍රොටෝකෝල ක්‍රියාත්මක විය යුතුය).
  • GitLab සත්කාරකත්වය දරන්නේ git.domain.com.auසහ:
    • නාම අවකාශය සමඟ කණ්ඩායමක් නිර්මාණය වේ dev-team.
    • අවම වශයෙන් එක් පරිශීලක ගිණුමක් සාදනු ලැබේ, කණ්ඩායමට එකතු කරනු ලැබේ, සහ සංක්‍රමණය සඳහා භාවිතා කරන ගිණුම සඳහා SSH යතුරක් ඇත (භාවිතා කිරීම පරීක්ෂා කරන්න ssh git@git.domain.com.au).
    • ව්‍යාපෘතිය favourite-projectනිර්මාණය කර ඇත්තේ dev-teamනාම අවකාශයේ ය.
  • ගොනුව users.txtඅදාල පරිශීලක විස්තර, එක් පරිශීලක පේළියකට, පත්රයේ ඇති අඩංගු username = First Last <address@domain.com.au>කොහේද, usernameපරිශීලක නාමය SVN ලඝු-සටහන් හි දක්වා ඇත. (විස්තර සඳහා යොමු කොටසේ පළමු සබැඳිය බලන්න, විශේෂයෙන් කේසි පරිශීලකයාගේ පිළිතුර).

අනුවාද

  • උපසිරැසි අනුවාදය 1.6.17 (r1128011)
  • git අනුවාදය 1.9.1
  • GitLab අනුවාදය 7.2.1 ff1633f
  • උබුන්ටු සේවාදායකය 14.04

විධාන

bash
git svn clone --stdlayout --no-metadata -A users.txt 
http://svn.domain.com.au/svn/repository/favourite-project
cd favourite-project
git remote add gitlab git@git.domain.com.au:dev-team/favourite-project.git
git push --set-upstream gitlab master

ඒක තමයි! ව්‍යාපෘති පිටුව GitLab වෙබ් UI හි නැවත පූරණය කරන්න, දැන් ලැයිස්තුගත කර ඇති සියලුම කොමිස් සහ ගොනු ඔබට පෙනෙනු ඇත.

සටහන්

  • නොදන්නා පරිශීලකයන් තිබේ නම්, git svn cloneවිධානය කුමන අවස්ථාවකදී, යාවත්කාලීන, නතර කරනු ඇත users.txt, cd favourite-projectසහ git svn fetchඑය නතර තැන සිට කටයුතු කරනු ඇත.
  • සම්මත trunk- tags- branchesSVN නිධිය සැකැස්ම අවශ්ය වේ.
  • git svn cloneවිධානයට ලබා දී ඇති SVN URL එක වහාම ඉහළ මට්ටමේ නතර වේ trunk/, tags/සහbranches/ .
  • මෙම git svn cloneවිධානය ඉහළ සමහර අනතුරු ඇඟවීම් ඇතුළත්, ප්රතිදාන ගොඩක් නිෂ්පාදනය, මම අනතුරු ඇඟවීම් නොසලකා හැරියෙමි.

මෙම සබැඳිය ප්‍රශ්නයට පිළිතුරු සැපයිය හැකි නමුත්, පිළිතුරේ අත්‍යවශ්‍ය කොටස් මෙහි ඇතුළත් කිරීම සහ යොමු කිරීම සඳහා සබැඳිය සැපයීම වඩා හොඳය. සම්බන්ධිත පිටුව වෙනස් වුවහොත් සම්බන්ධක පමණක් පිළිතුරු වලංගු නොවේ.
බ්ලැක්හෝල්

1
මම එකඟවෙන්නේ නැහැ. සම්බන්ධිත අන්තර්ගතය වෙනස් විය හැකි අතර, මෙහි අනුපිටපත් කළ අන්තර්ගතය යාවත්කාලීන නොවනු ඇත, එබැවින් එය යල් පැන ගිය එකක් විය හැකිය (ඇත්ත වශයෙන්ම මම මෙම පිළිතුර පළ කළ දා සිට එය වෙනස් වී ඇති බව විශ්වාස කරමි). මාර්ගෝපදේශ වල සඳහන් වන්නේ සබැඳියක් සඳහා අදාළ සන්දර්භයක් ඇතුළත් කිරීම පමණි, එය මා විසින් සිදු කරන ලදි - සත්‍ය ප්‍රශ්නයට සබැඳියෙන් තොග වශයෙන් පිළිතුරු සපයන ලදී. සම්බන්ධිත සම්පත මෙහි පිටපත් කිරීම අවශ්‍ය නොවේ. මම මේ සඳහා පහත් කොට සැලකුවාද?!
leftclickben

2

තවත් පැත්තක් ලෙස, git-svn dcommits සමඟ git කිරීමට උත්සාහ කරන විට git-stash විධානය දේවතාවියකි.

සාමාන්‍ය ක්‍රියාවලියක්:

  1. git repo පිහිටුවන්න
  2. විවිධ ලිපිගොනු වල යම් වැඩක් කරන්න
  3. Git භාවිතා කරමින්, සමහර වැඩ පරීක්ෂා කිරීමට තීරණය කරන්න
  4. තීරණය svn-dcommit
  5. භයානක "අපිරිසිදු දර්ශකයක් සමඟ සම්බන්ධ විය නොහැක" දෝෂය ලබා ගන්න.

විසඳුම (git 1.5.3+ අවශ්‍ය වේ):

git stash; git svn dcommit ; git stash apply

2

SVN නිධිය එකක් හෝ වැඩි ගණනක් git බවට පරිවර්තනය කර ඒවා GitHub වෙත තල්ලු කරන පරායත්තයන් නොමැති සරල ෂෙල් පිටපතක් මෙන්න.

https://gist.github.com/NathanSweet/7327535

ස්ක්‍රිප්ට් පේළි 30 ක පමණ එය: git SVN භාවිතා කරන ක්ලෝන, SVN වෙතින් .gitignore ගොනුවක් සාදයි :: ගුණාංග නොසලකා හැරීම, හිස් git නිධියකට තල්ලු කිරීම, SVN කඳ මාස්ටර් ලෙස නම් කිරීම, SVN ටැග්ස් git ටැග් බවට පරිවර්තනය කිරීම සහ එය GitHub වෙත තල්ලු කිරීම. ටැග් සංරක්ෂණය කරන අතරතුර.

ගූගල් කේතයේ සිට SVN ගබඩාවන් දුසිමක් GitHub වෙත ගෙනයාමට මම බොහෝ වේදනා වින්දා. මම වින්ඩෝස් භාවිතා කළ බවට එය උදව් කළේ නැත. රූබී මගේ පැරණි ඩෙබියන් පෙට්ටියේ සියලු වර්ගවල කැඩී ඇති අතර එය වින්ඩෝස් මත වැඩ කිරීම විහිළුවක් විය. වෙනත් විසඳුම් සිග්වින් මාර්ග සමඟ වැඩ කිරීමට අසමත් විය. මට යමක් වැඩ කළ පසු පවා, GitHub හි පෙන්වීමට ටැග් ලබා ගන්නේ කෙසේදැයි මට සිතාගත නොහැකි විය (රහස වන්නේ - Follow-tags).

අවසානයේදී මම කෙටි හා සරල ස්ක්‍රිප්ට් දෙකක් එකට සම්බන්ධ කර, ඉහත සම්බන්ධ කර ඇති අතර එය විශිෂ්ට ලෙස ක්‍රියා කරයි. විසඳුම ඊට වඩා සංකීර්ණ විය යුතු නැත!


2
මම මෙම පිටපත භාවිතා කළෙමි. මඳක් පසුබෑමෙන් හා දෝෂයකින් පසුව, එය මට වැඩ කළේය. මේ සඳහා ඔබට Git 1.8.3+ අවශ්‍ය බව කරුණාකර උපදෙස් දෙන්න , මන්ද --follow-tags සහය දක්වන්නේ ඉන් පසුව පමණි.
nrobey

2

වින්ඩෝස් යන්ත්‍රයක් මත අයිඑම් සහ කුඩා කණ්ඩායමක් සෑදූයේ ඉතිහාසය සහිත එස්.වී.එන්. ගබඩාවක් (නමුත් අතු නොමැතිව) ජී.අයි.ටී.

transfer.bat http://svn.my.address/svn/myrepo/trunk https://git.my.address/orga/myrepo

සමහර විට ඕනෑම කෙනෙකුට එය භාවිතා කළ හැකිය. එය ටීඑම්පී-ෆෝල්ඩරයක් නිර්මාණය කර එහි ඇති එස්වීඑන් රිපෝව git සමඟ පරීක්ෂා කර නව සම්භවය එකතු කර එය තල්ලු කරයි ... සහ ෆෝල්ඩරය නැවත මකා දමයි.

@echo off 
SET FROM=%1 
SET TO=%2 
SET TMP=tmp_%random%

echo from:  %FROM% 
echo to:    %TO% 
echo tmp:   %TMP%

pause

git svn clone  --no-metadata --authors-file=users.txt %FROM% %TMP%  
cd %TMP% 
git remote add origin %TO% 
git push --set-upstream origin master


cd .. 
echo delete %TMP% ... 
pause

rmdir /s /q %TMP%

ඔබට තවමත් පරිශීලක-සිතියම් වැනි පරිශීලක සිතියම් ගත කිරීම අවශ්‍ය වේ

User1 = User One <u.1@xxx.com>

මෙම පිළිතුර මගේ සියලු ගබඩාවන් කිසිදු ගැටළුවක් නොමැතිව බිට්බකට් වෙත ගෙන යාමට උපකාරී විය.
ගොන්සලිංගුයි

ඇසීම සතුටක්. මට තිබුණේ ගිටියා සමඟ අත්දැකීම් පමණි ... නමුත් මේ ආකාරයෙන් re 40 ගබඩාවන් ලබා දී ඇත.
cljk

ඉතා කදිමයි! Thnx
b3wii

අනතුරු ඇඟවීම; මම නරක අක්ෂර ගැටළු වලට මුහුණ දුන්නා. මම මෙය ඉතා ප්‍රමාද බව හඳුනා ගත්තද එය නිවැරදි කිරීමට මට පැය කිහිපයක් ගත විය. කරුණාකර ඔබේ ප්‍රති
re ලවල ඇති

1

මට අවශ්‍ය වූයේ මගේ දායකත්වය Git ප්‍රජාවට එක් කිරීමට ය. සම්පූර්ණ ආනයනය ස්වයංක්‍රීය කරන සරල බාෂ් පිටපතක් මා ලිවීය. වෙනත් සංක්‍රමණ මෙවලම් මෙන් නොව, මෙම මෙවලම jGit වෙනුවට ස්වදේශීය git මත රඳා පවතී. මෙම මෙවලම විශාල සංශෝධන ඉතිහාසයක් ඇති හෝ විශාල බ්ලොබ් සහිත ගබඩාවලට ද සහාය වේ. එය ගිතුබ් හරහා ලබා ගත හැකිය:

https://github.com/onepremise/SGMS

මෙම ස්ක්‍රිප්ට් එක SVN හි ගබඩා කර ඇති ව්‍යාපෘති පහත ආකෘතියෙන් පරිවර්තනය කරයි:

/trunk
  /Project1
  /Project2
/branches
     /Project1
     /Project2
/tags
 /Project1
 /Project2

මෙම යෝජනා ක්‍රමය ද ජනප්‍රිය සහ සහාය වේ:

/Project1
     /trunk
     /branches
     /tags
/Project2
     /trunk
     /branches
     /tags

සෑම ව්‍යාපෘතියක්ම ව්‍යාපෘති නාමයෙන් සමමුහුර්ත වේ:

Ex: ./migration https://svnurl.com/basepath project1

ඔබට සම්පූර්ණ ප්‍රතිමූර්තිය පරිවර්තනය කිරීමට අවශ්‍ය නම්, පහත දැක්වෙන වාක්‍ය ඛණ්ඩය භාවිතා කරන්න:

Ex: ./migration https://svnurl.com/basepath .

0

උපසිරැසි සමඟ Git භාවිතා කිරීම කිරීම git-svn සඳහා මෘදු හැඳින්වීමකි. පවතින SVN නිධි සඳහා, git-svn මෙම සුපිරි පහසු කරයි. ඔබ නව ගබඩාවක් ආරම්භ කරන්නේ නම්, පළමුව හිස් SVN ගබඩාවක් නිර්මාණය කර ප්‍රතිවිරුද්ධ දිශාවට යනවාට වඩා git-svn භාවිතයෙන් ආනයනය කිරීම පහසුය. නව Git ගබඩාවක් නිර්මාණය කිරීමෙන් පසුව SVN වෙත ආනයනය කිරීම කළ හැකිය, නමුත් එය ටිකක් වේදනාකාරී වේ, විශේෂයෙන් ඔබ Git වෙත අලුත් නම් සහ කැපවීමේ ඉතිහාසය ආරක්ෂා කිරීමට බලාපොරොත්තු වන්නේ නම්.


0

වින්ඩෝස් සඳහා රූබි ස්ථාපකය බාගත කර එය සමඟ නවතම අනුවාදය ස්ථාපනය කරන්න. ඔබේ මාර්ගයට රූබි ක්‍රියාත්මක කළ හැකි දෑ එක් කරන්න.

  • Svn2git ස්ථාපනය කරන්න
  • ආරම්භක මෙනුව -> සියලුම වැඩසටහන් -> රූබි -> රූබි සමඟ විධාන විමසුමක් ආරම්භ කරන්න
  • ඉන්පසු “gem install svn2git” ටයිප් කර ඇතුල් කරන්න

    උපසිරැසි ගබඩාව සංක්‍රමණය කරන්න

  • රූබි විධාන විමසුමක් විවෘත කර ලිපිගොනු සංක්‍රමණය කළ යුතු නාමාවලියට යන්න

    ඉන්පසු svn2git http: // [වසමේ නම] / svn / [නිධිය මූල]

  • ව්‍යාපෘතිය Git වෙත සංක්‍රමණය වීමට පැය කිහිපයක් ගතවනු ඇත ව්‍යාපෘති කේත ප්‍රමාණය මත රඳා පවතී.

  • මෙම ප්‍රධාන පියවර පහත සඳහන් පරිදි Git නිධිය ව්‍යුහය නිර්මාණය කිරීමට උපකාරී වේ.

    SVN (/ Project_components) කඳ -> Git master SVN (/ Project_components) ශාඛා -> Git ශාඛා SVN (/ Project_components) ටැග් -> Git tags

දුරස්ථ නිධිය සාදන්න සහ වෙනස්කම් තල්ලු කරන්න.


0

GitHub ආනයනකරුවෙකු ඇත. ඔබ නිධිය නිර්මාණය කළ පසු, පවතින URL එකකින් එහි URL හරහා ආනයනය කළ හැකිය. අදාළ නම් එය ඔබගේ අක්තපත්‍ර ඉල්ලා සිටින අතර එතැනින් යන්න.

එය ක්‍රියාත්මක වන විට එය කතුවරුන් සොයා ගනු ඇති අතර ඔබට ඒවා GitHub හි පරිශීලකයින්ට සිතියම් ගත කළ හැකිය.

මම දැන් එය නිධි කිහිපයක් සඳහා භාවිතා කර ඇති අතර එය ඉතා නිවැරදි හා වඩා වේගවත් ය! ඩොලර් 4000 ක ගබඩාවක් සඳහා මිනිත්තු 10 ක් ගත වූ අතර, මගේ මිතුරාට දින හතරක් ගත වූ පසු!


0

මෙහි පිළිතුරු කිහිපයක් https://github.com/nirvdrum/svn2git වෙත යොමු වේ , නමුත් විශාල ගබඩාවලට මෙය මන්දගාමී විය හැකිය. මට https://github.com/svn-all-fast-export/svn2git භාවිතා කිරීමට උත්සාහ කළා ඒ වෙනුවට එකම නම සහිත මෙවලමක් වන නමුත් KDE SVN සිට Git වෙත සංක්‍රමණය කිරීමට භාවිතා කරන ලදි.

එය සැකසීමට තරමක් වැඩ කළ නමුත් පරිවර්තනය මා විසින්ම කළ විට අනෙක් ස්ක්‍රිප්ට් පැය ගණනක් ගත කළ මිනිත්තු කිහිපයක් ගත විය.


0

මෙම ඉලක්කය සපුරා ගැනීම සඳහා විවිධ ක්‍රම තිබේ. මම ඒවායින් සමහරක් අත්හදා බැලූ අතර වින්ඩෝස් මෙහෙයුම් පද්ධතියේ ස්ථාපනය කර ඇති git සහ svn සමඟ වැඩ කරන බව මට පෙනී ගියේය.

පූර්වාවශ්යතාවයන්:

  1. කවුළු මත git (මම මෙය භාවිතා කර ඇත) https://git-scm.com/
  2. svn සමඟ කොන්සෝල මෙවලම් ස්ථාපනය කර ඇත (මම ඉබ්බා svn භාවිතා කර ඇත)
  3. ඔබේ SVN ගබඩාවේ ගොනුව දමන්න. svnadmin dump /path/to/repository > repo_name.svn_dump

අවසාන ඉලක්කය සපුරා ගැනීමේ පියවර (ඉතිහාසය සමඟ ඇති සියළුම නිධිය git වෙත ගෙනයන්න, පළමුව දේශීය git, පසුව දුරස්ථ)

  1. REPO_NAME_FOLDER නාමාවලියෙහි හිස් ගබඩාවක් (කොන්සෝල මෙවලම් හෝ ඉබ්බන් එස්වීඑන් භාවිතා කරමින්) සාදන්න cd REPO_NAME_PARENT_FOLDER, ඩම්ප්ෆයිල්.ඩම්ප් REPO_NAME_PARENT_FOLDER තුළට දමන්න.

  2. svnadmin load REPO_NAME_FOLDER < dumpfile.dump මෙම මෙහෙයුම සඳහා රැඳී සිටින්න, එය දිගු විය හැකිය

  3. මෙම විධානය නිහ is යි, එබැවින් දෙවන cmd කවුළුව විවෘත කරන්න: svnserve -d -R --root REPO_NAME_FOLDER ඇයි ගොනුව භාවිතා නොකරන්නේ: /// ......? Https://stackoverflow.com/a/6300968/4953065Unable to open ... to URL: පිළිතුරට ස්තූතිවන්ත වන නිසා ඊළඟ විධානය අසමත් වනු ඇත

  4. SOURCE_GIT_FOLDER නව ෆෝල්ඩරයක් සාදන්න

  5. cd SOURCE_GIT_FOLDER
  6. git svn clone svn: // localhost / මෙම මෙහෙයුම සඳහා රැඳී සිටින්න.

අවසාන වශයෙන්, අපට ලැබෙන්නේ කුමක්ද?

අපගේ දේශීය ගබඩාව පරීක්ෂා කරමු:

git log

ඔබගේ පෙර කළ ක්‍රියා බලන්න? ඔව් නම් - හරි

දැන් ඔබේ මූලාශ්‍ර සහ පැරණි svn ඉතිහාසය සමඟ සම්පුර්ණයෙන්ම ක්‍රියාකාරී දේශීය git ගබඩාවක් ඔබ සතුව ඇත. දැන්, ඔබට එය කිසියම් සේවාදායකයකට ගෙන යාමට අවශ්‍ය නම්, පහත දැක්වෙන විධානයන් භාවිතා කරන්න:

git remote add origin https://fullurlpathtoyourrepo/reponame.git
git push -u origin --all # pushes up the repo and its refs for the first time
git push -u origin --tags # pushes up any tags

මගේ නඩුවේදී, මට ටැග්ස් විධානයක් අවශ්‍ය නොවන්නේ මගේ රෙපෝ ටැග් නොමැති නිසාය.

වාසනාව!


0

ටැග් හෝ අතු නොමැතිව svn උප මොඩියුලය / ෆෝල්ඩරය 'MyModule' ඉතිහාසය සමඟ git බවට පරිවර්තනය කිරීම.

Svn නොසලකා හැරීමේ ලැයිස්තුව රඳවා ගැනීමට 1 වන පියවරෙන් පසු ඉහත අදහස් භාවිතා කරන්න

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.