рд╢реБрдн рджреЛрдкрд╣рд░
рд▓реЗрдЦ рдореЗрдВ рдореИрдВ рдЖрдкрдХреЛ рдмрддрд╛рдКрдВрдЧрд╛ рдХрд┐ рд╣рдо git рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ svn рдХреЗ рд╕рд╛рде рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рд╣рдордиреЗ рд╢реБрджреНрдз git рдХреЛ рдХреНрдпреЛрдВ рдирд╣реАрдВ рдЪреБрдирд╛ред
SVN
рддреЛрдбрд╝рдлреЛрдбрд╝ рдПрдХ рдХреЗрдВрджреНрд░реАрдХреГрдд рд╕рдВрд╕реНрдХрд░рдг рдирд┐рдпрдВрддреНрд░рдг рдкреНрд░рдгрд╛рд▓реА рд╣реИред рдпрд╣ рдЙрд╕рдХрд╛ рдореБрдЦреНрдп рдЛрдг рд╣реИ рдФрд░ рдЙрд╕рдХрд╛ рдореБрдЦреНрдп рдкреНрд▓рд╕ :)
рдкреНрд▓рд╕ рдпрд╣ рд╣реИ рдХрд┐ рдХреЗрдВрджреНрд░реАрдпрдХрд░рдг рд╕рдВрднрд╡ рдмрдирд╛рддрд╛ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╕рдВрдЦреНрдпрд╛рдУрдВ рдХреЗ рд▓рд┐рдП, рдХреНрдпреЛрдВрдХрд┐ рдЙрдирдХрд╛ рдЖрджреЗрд╢ рдЬреНрдЮрд╛рдд рд╣реИред
рдпрд╣ рд╕рдВрдШрд░реНрд╖реЛрдВ рдХреЛ рдХрдо рдХрд░рддрд╛ рд╣реИ (рд╣рд╛рд▓рд╛рдВрдХрд┐ рдпрд╣ рддрд░реНрдХ рджрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ), рдХреНрдпреЛрдВрдХрд┐ рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдХреА рд╡рд░реНрддрдорд╛рди рд╕реНрдерд┐рддрд┐ рдПрдХ рд╣реИ рдФрд░ рдпрд╣ рд╕рднреА рдХреЛ рдкрддрд╛ рд╣реИред
Svn рдореЗрдВ, рдЖрдк рдПрдХ рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдореЗрдВ рдХрдИ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рд╕реНрдЯреЛрд░ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, svn рдореЗрдВ рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдлрд╝рд╛рдЗрд▓ рд╕рд┐рд╕реНрдЯрдо рдХреЗ рд╕рдорд╛рди рд╣реИ, рдЬреЛ рдЙрди рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рдиреНрдпреВрдирддрдо рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐ рд╕реАрдорд╛ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ рдЬрд┐рдиреНрд╣реЛрдВрдиреЗ рдХрднреА рд╕рдВрд╕реНрдХрд░рдг рдирд┐рдпрдВрддреНрд░рдг рдкреНрд░рдгрд╛рд▓рд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдирд╣реАрдВ рдХрд┐рдпрд╛ рд╣реИред
рдореБрдЦреНрдп рдорд╛рдЗрдирд╕ рдорд░реНрдЬ рд╣реИ ... рдЬреЛ рд▓реЛрдЧ рдЕрдХреНрд╕рд░ svn рдЯреВрд▓ рдХреЗ рд╕рд╛рде рдорд░реНрдЬ рдХрд░рддреЗ рд╣реИрдВ рд╡реЗ рд╕рдордЭрддреЗ рд╣реИрдВ рдХрд┐ рдореЗрд░рд╛ рдХреНрдпрд╛ рдорддрд▓рдм рд╣реИред
рдпрд╣ рдзреАрдорд╛ рд╣реИ (рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ meeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee) рдпрд╣ рдзреАрдорд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдореБрд╢реНрдХрд┐рд▓ рд╣реИ, рдФрд░ рдпрд╣ рднреА рдЗрди svn- рдЧреБрдг рд╣реИ, рдЬреЛ рдкрдврд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдореБрд╢реНрдХрд┐рд▓ рд╣реИред
рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ - рд╕рдорд╛рдзрд╛рди рд╕рддрд╣ рдкрд░ рд╕реНрдерд┐рдд рд╣реИ, рдЖрдкрдХреЛ рдмрд╕ рд╕рдВрд╕реНрдХрд░рдг рдирд┐рдпрдВрддреНрд░рдг рдкреНрд░рдгрд╛рд▓реА рдХреЛ рдмрджрд▓рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рд╣рдорд╛рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ,
рдЖрдк рдмрд╕ рдирд╣реАрдВ рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЧрд┐рдЯ рдореЗрдВ рдмрджрд▓
рд╕рдХрддреЗ рд╣реИрдВред
рдЗрд╕рдХреЗ рдХрдИ рдХрд╛рд░рдг рд╣реИрдВ, рдФрд░ рдпреЗ рд╕рднреА рд╡рд┐рд░рд╛рд╕рдд рдХреЗ рдХрд╛рд░рдг рд╣реИрдВред рдЕрдЧрд░ рд╣рдордиреЗ рдЕрднреА рд╡рд┐рдХрд╛рд╕ рд╢реБрд░реВ рдХрд┐рдпрд╛ рд╣реИ, рддреЛ рд╣рдо рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рд╕рдВрднрд╛рд╡рдирд╛ рдЪреБрдиреЗрдВрдЧреЗред рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рд▓рдЧрднрдЧ рдЫрд╣ рд╡рд░реНрд╖реЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рднрдВрдбрд╛рд░ рд╣реИ, рдЗрд╕ рд╕рдордп рдХреЗ рджреМрд░рд╛рди рд╣рдордиреЗ рдЗрд╕рдореЗрдВ 129 рдкрд░рд┐рдпреЛрдЬрдирд╛рдПрдБ рдмрдирд╛рдИ рд╣реИрдВ, рдФрд░ рд╕рдВрд╢реЛрдзрдиреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ 88,000 рд╕реЗ рдЕрдзрд┐рдХ рд╣реЛ рдЧрдИ рд╣реИред
рд╣рдо
trac рдХрд╛ рдЙрдкрдпреЛрдЧ рдмрдЧ рдЯреНрд░реИрдХрд░ рдХреЗ рд░реВрдк рдореЗрдВ рдХрд░рддреЗ рд╣реИрдВред рдЗрд╕рдореЗрдВ рдЕрдм 10 рд╣рдЬрд╛рд░ рд╕реЗ рдЕрдзрд┐рдХ рдЯрд┐рдХрдЯ рд╣реИрдВред рдХрдИ рд▓реЛрдЧреЛрдВ рдХреЗ рдкрд╛рд╕ рдРрд╕реЗ рд▓рд┐рдВрдХ рд╣реИрдВ рдЬреЛ рд╕реБрдзрд╛рд░реЛрдВ рдХреА рдкреБрд╖реНрдЯрд┐ рдХрд░рддреЗ рд╣реИрдВред рдореИрдВ рдЗрд╕ рд╕рдореГрджреНрдз рд╡рд┐рд░рд╛рд╕рдд рдХреЛ рдирд╣реАрдВ рдЦреЛрдирд╛ рдЪрд╛рд╣рддрд╛ред
рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛ svn рдХреЗ рдкрд╛рд╕ рдПрдХ рдкреНрд▓рд╕ рд╣реИ - рд╕рднреА рдкрд░рд┐рдпреЛрдЬрдирд╛рдПрдВ рдПрдХ рд╣реА рднрдВрдбрд╛рд░ рдореЗрдВ рд╣реИрдВред рдЯреНрд░рд╛рдХ рд╕реЛрдЪрддрд╛ рд╣реИ рдХрд┐ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдПрдХ рдкрд░рд┐рдпреЛрдЬрдирд╛ рд╣реИ, рдЬреЛ рдЙрд╕рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреА рд╕реБрд╡рд┐рдзрд╛ рдкреНрд░рджрд╛рди рдХрд░рддреА рд╣реИред
рджреВрд╕рд░реЗ рд╢рдмреНрджреЛрдВ рдореЗрдВ, svn рдХреЛ рдЫреЛрдбрд╝рдирд╛ рд╣рдорд╛рд░реЗ рд▓рд┐рдП рдмрд╣реБрдд рдорд╣рдВрдЧрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдорд░реНрдЬ рдХрд░рдирд╛ ...
рдирд┐рд░реНрдгрдп
рдорд╛рди рд▓реЗрдВ рдХрд┐ sv рд░рд┐рдкреЛрдЬрд┐рдЯрд░реА рдХреЗ рдЕрдВрджрд░ рд╣реИ, рд▓реЗрдХрд┐рди рд╣рд░ рдХреЛрдИ рдЗрд╕рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдХрд╛рдо рдХрд░реЗрдЧрд╛ред рдЪрд▓реЛ рдХрд░рддреЗ рд╣реИрдВ!
- Git рдФрд░ git-svn рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВред рд╕реНрдерд╛рдкрдирд╛ рд╡рд┐рдзрд┐ рдЖрдкрдХреЗ рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддреА рд╣реИред рдореЗрд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдпрд╣ рдПрдХ рд╕рд╛рдзрд╛рд░рдг рд╕реЗрдЯ рдХреЗ рд▓рд┐рдП рдиреАрдЪреЗ рдЖрддрд╛ рд╣реИ:
apt-get update && apt-get install subversion git git-svn
- рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрдЪреНрдЫрд╛ ~ / .itconfig рдмрдирд╛рдПрдВ
[user] email = e.kokovikhin@co.wapstart.ru name = Evgeniy V. Kokovikhin [core] editor = vim [alias] co = checkout br = branch ci = commit st = status di = diff
- рдХреНрд▓реЛрди рд░рд┐рдкреЛрдЬрд┐рдЯрд░реА:
cd /var/www/project.wapstart/ mkdir project && cd project
рдЕрдВрддрд┐рдо рдЯреАрдо рдореВрд░реНрдд рд╕рдордп рд▓реЗрдЧреАред рд╣рдорд╛рд░реЗ рднрдВрдбрд╛рд░ рдкрд░ - 4 рдШрдВрдЯреЗред
--stlayout рддрд░рд╣ рд╣рдореЗрдВ рдмрддрд╛рддрд╛ рд╣реИ рдХрд┐ рд╣рдорд╛рд░реА рдкрд░рд┐рдпреЛрдЬрдирд╛ рд▓реЗрдЖрдЙрдЯ рдорд╛рдирдХ рд╣реИ:
project тФЬтФАтФА trunk тФЬтФАтФА branches тФВ тФЬтФАтФА dovgFeature тФВ тФФтФАтФА dovgAnotheFeature тФФтФАтФА tags тФЬтФАтФА 3.0.1 тФФтФАтФА 3.0.2
рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╕рдм рдХреБрдЫред
рдЯреНрд░рдВрдХ рдХреЛ рдЕрдм рдорд╛рд╕реНрдЯрд░ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЕрдиреНрдп рд╕рднреА рдмреНрд░рдВрдЪ рдХреЛ рд╣рдореЗрд╢рд╛ рдХреА рддрд░рд╣ рдирд╛рдо рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред
рдмреНрд░рдВрдЪ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░реЗрдВ:
git branch -r # git checkout -b dovgBranch dovgBranch # dovgBranch dovgBranch git branch # тАФ
рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП:
dovg@marvin ~/job/oemdesign/www/plus1.wapstart.loc/plus1 $ git branch dovgUnique experimental * master moderation production referals targetingCountry uniqueCookie uniqueSession ---------
рдФрд░ рдЕрдм рдЗрд╕рдХреЗ рд╕рд╛рде рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рдирд╛ рд╣реИ?
- Svn рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░реЗрдВ
git svn rebase # ( ) git svn fetch # git svn dcommit # svn git svn branch <branch-name> # :) git svn help branch git svn info # svn,
- рдорд░реНрдЬред рдЗрд╕рдХреЗ рд▓рд┐рдП рд╣рдордиреЗ рдпрд╣ рд╕рдм рдХрд┐рдпрд╛ред
git merge --log master # .
рдорд╛рд╕реНрдЯрд░ (рдЯреНрд░рдВрдХ) рдореЗрдВ рд╡рд┐рд▓рдп рдХреЗ рд▓рд┐рдП
git checkout master git merge --no-ff <branch-name>
рдорд░рдЬрд╝реА рдЬрд▓реНрджреА рд╕реЗ рдкрд╛рд╕ рд╣реЛ, рдХреНрдпреЛрдВрдХрд┐ рдПрдХ рджреВрд░рд╕реНрде рднрдВрдбрд╛рд░ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред рдХреЛрдИ рднреА рдЕрдм рдЙрдирд╕реЗ рдбрд░рддрд╛ рдирд╣реАрдВ рд╣реИред
- рдореВрд▓ рдмрд╛рддреЗрдВ
git diff тАФ git commit тАФ ┬л┬╗ git commit -a тАФ , , git add тАФ . svn. svn , git , git commit -a git reset
рдЕрдВрдд рдореЗрдВ, рдПрдХ рдЫреЛрдЯрд╛ рд╕рд╛ рдкреНрд░рд╢реНрди:
- рдмреНрд░рдВрдЪ рдмрдирд╛рдПрдВ рдФрд░ рдЙрд╕ рдкрд░ рд╕реНрд╡рд┐рдЪ рдХрд░реЗрдВ: git svn рдмреНрд░рд╛рдВрдЪ рдЯрд┐рдХрдЯ -666 && git svn fetch && git co -b рдЯрд┐рдХрдЯ -666 рдЯрд┐рдХрдЯ -666
- рдЯреНрд░рд╛рдВрд╕рдлрд╝рд░ рдмреНрд░рдВрдЪ рдХреЛ рдорд╛рд╕реНрдЯрд░: git co ticket-666 && git рдорд░реНрдЬ --log --no-ff рдорд╛рд╕реНрдЯрд░ рдФрд░& git svn dcommit && git co master && git рдорд░реНрдЬ --log -no-ff рдЯрд┐рдХрдЯ -666 && git svn dcommit
- рдЯреЗрд╕реНрдЯ рдХреЗ рд▓рд┐рдП рдмреНрд░рдВрдЪ рдкрд╛рд╕ рдХрд░реЗрдВ (рд╡рд┐рдЬрд╝рд╛рд░реНрдб рдФрд░ рдХрдорд┐рдЯ рд╕реЗ рдЕрдкрдбреЗрдЯ рдХрд░реЗрдВ): git co ticket-666 && git рдорд░реНрдЬ - рдкреНрд▓реЙрдЯ - рдХреЛрдИ рднреА рдорд╛рд╕реНрдЯрд░ рдФрд░& git svn dcommit
рд╕рдордп-рд╕рдордп рдкрд░ рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдЕрдкрдбреЗрдЯ рдХрд░реЗрдВ: git svn fetch
рдПрдХ рдирд┐рд╖реНрдХрд░реНрд╖ рдХреЗ рдмрдЬрд╛рдп
рдПрдХ рд▓рдВрдмреЗ рд╕рдордп рдХреЗ рд▓рд┐рдП, рдпрд╣ рд▓реЗрдЦ
рд╡реИрдкрд╕реНрдЯрд╛рд░реНрдЯ рдЖрдВрддрд░рд┐рдХ рд╡рд┐рдХреА рдкрд░ saggedред рдореБрдЭреЗ рдРрд╕рд╛ рд▓рдЧ рд░рд╣рд╛ рдерд╛ рдХрд┐ рдпрд╣ рд╕рдореБрджрд╛рдп рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧреА рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рдирддреАрдЬрд╛ рдЖрдкрдХреЗ рд╕рд╛рдордиреЗ рд╣реИред ;)