The decision on when to
The decision on when to fire off a contextual diff or merge as part of a larger Subversion operation is made entirely by Subversion, and is affected by, among other things, whether or not the files being operated on are human-readable as determined by their svn:mime-type property. This means, for example, that even if you had the niftiest Microsoft Word-aware differencing or merging tool in the Universe, it would never be invoked by Subversion so long as your versioned Word documents had a configured MIME type that denoted that they were not human-readable (such as application/msword). For more about MIME type settings, see «svn:mime-type»
Џ®б«Ґ¤гойЁ© ЇаЁ¬Ґа ЇаҐ¤Ї®« Ј Ґв «ЁзЁҐ г ў б а Ў®в ойЁе Subversion Є«ЁҐв ¤«п Є®¬ ¤®© бва®ЄЁ svn Ё Ёбва㬥⠤¬ЁЁбваЁа®ў Ёп svnadmin. Ља®¬Ґ нв®Ј® ® а ббзЁв в®, зв® ўл ЁбЇ®«м§гҐвҐ Subversion ўҐабЁЁ 1.2 Ё«Ё Ў®«ҐҐ Ї®§¤Ґ© (¤«п в®Ј®, зв®Ўл нв® Їа®ўҐаЁвм, ўлЇ®«ЁвҐ svn --version).
Subversion еа Ёв ўбо ўҐабЁ®Ёа®ў го Ёд®а¬ жЁо ў жҐва «м®¬ еа Ё«ЁйҐ. „«п з « , ᮧ¤ ¤Ё¬ ®ў®Ґ еа Ё«ЁйҐ:
$ svnadmin create /path/to/repos $ ls /path/to/repos conf/ dav/ db/ format hooks/ locks/ README.txt ќв Є®¬ ¤ ᮧ¤ Ґв ®ўго ¤ЁаҐЄв®аЁо /path/to/repos ᮤҐа¦ йго Subversion еа Ё«ЁйҐ. “ЎҐ¤ЁвҐбм, зв® нв ¤ЁаҐЄв®аЁп 室Ёвбп «®Є «м®¬ ¤ЁбЄҐ, Ґ бҐвҐў®© и аҐ. ЏаҐЁ¬гйҐб⢥® ў нв ®ў п ¤ЁаҐЄв®аЁп (Єа®¬Ґ Їа®зҐЈ®) ᮤҐа¦Ёв Ў®а д ©«®ў Ў §л ¤ ле. ‚л Ґ гўЁ¤ЁвҐ бў®Ёе ўҐабЁ®Ёа®ў ле д ©«®ў Ґб«Ё ўл § Ј«пЁвҐ ўгвам. Ѓ®«миҐ Ёд®а¬ жЁЁ ® ᮧ¤ ЁЁ Ё Ї®¤¤Ґа¦ЄҐ еа Ё«Ёй ЁйЁвҐ ў ѓ« ў я5, Ђ¤¬ЁЁбваЁа®ў ЁҐ еа Ё«Ёй .
“ Subversion Ґв Ї®пвЁп <Їа®ҐЄв>. •а Ё«ЁйҐ пў«пҐвбп Їа®бв® ўЁавг «м®© ўҐабЁ®Ёа®ў ®© д ©«®ў®© бЁб⥬®©, Ў®«м讥 ¤ҐаҐў® д ©«®ў, Є®в®а®Ґ ¬®¦Ґв ᮤҐа¦ вм ўбҐ, зв® гЈ®¤®. Ћ¤Ё ¤¬ЁЁбва в®ал ЇаҐ¤Ї®зЁв ов ¤Ґа¦ вм ў еа Ё«ЁйҐ в®«мЄ® ®¤Ё Їа®ҐЄв, ¤агЈЁҐ ¤Ґа¦ вм ў еа Ё«ЁйҐ ¬®¦Ґбвў® Їа®ҐЄв®ў, а §¬Ґй п Ёе ў ®в¤Ґ«мле ¤ЁаҐЄв®аЁпе. „®бв®Ёбвў Є ¦¤®Ј® Ё§ Ї®¤е®¤®ў а бᬮваҐл ў
‚ н⮬ ЇаЁ¬ҐаҐ ¬л Ї®¤а §г¬Ґў Ґ¬ «ЁзЁҐ г ў б Є Є®Ј® в® Їа®ҐЄв ( Ў®а д ©«®ў Ё«Ё ¤ЁаҐЄв®аЁ©), Є®в®ал© ўл е®вЁвҐ Ё¬Ї®авЁа®ў вм ў в®«мЄ® з⮠ᮧ¤ ®Ґ Subversion еа Ё«ЁйҐ. Ќ зЁвҐ б ®ЎкҐ¤ЁҐЁп Ёе ў ®в¤Ґ«м®© ¤ЁаҐЄв®аЁЁ §ў ®© myproject (Ё«Ё Є Є-в® Ё зҐ). Џ® ЇаЁзЁ ¬, Є®в®алҐ Ўг¤гв пбл Ї®§¦Ґ (б¬. ѓ« ў я4, ‚Ґвў«ҐЁҐ Ё б«ЁпЁҐ), ў иҐ ¤ҐаҐў® Їа®ҐЄв ¤®«¦® ᮤҐа¦ вм ваЁ ¤ЁаҐЄв®аЁЁ ўҐа奣® га®ўп б §ў Ёп¬Ё branches, tags Ё trunk. ‚бп ў и Ёд®а¬ жЁп ¤®«¦ 室Ёвмбп ў ¤ЁаҐЄв®аЁЁ trunk, ¤ЁаҐЄв®аЁЁ branches Ё tags ¤®«¦л Ўлвм Їгбвл¬Ё:
/tmp/myproject/branches/ /tmp/myproject/tags/ /tmp/myproject/trunk/ foo.c bar.c Makefile : €бЇ®«м§®ў вм Ї®¤¤ЁаҐЄв®аЁЁ branches, tags Ё trunk Ґ ®Ўп§ ⥫м®. Џа®бв® в Є®© Ї®¤е®¤ з йҐ ўбҐЈ® ЁбЇ®«м§гҐвбп Ё ўҐа®п⥥ ўбҐЈ® ў ¤ «мҐ©иҐ¬ ўл Ўг¤ҐвҐ ЁбЇ®«м§®ў вм Ё¬Ґ® ҐЈ®.
Љ Є в®«мЄ® ўл Ї®«гзЁвҐ Ј®в®ў®Ґ ¤ҐаҐў® ¤ ле, Ё¬Ї®авЁаг©вҐ ҐЈ® ў еа Ё«ЁйҐ ЇаЁ Ї®¬®йЁ Є®¬ ¤л svn import (б¬.
$ svn import /tmp/myproject file:///path/to/repos/myproject -m "initial import" Adding /tmp/myproject/branches Adding /tmp/myproject/tags Adding /tmp/myproject/trunk Adding /tmp/myproject/trunk/foo.c Adding /tmp/myproject/trunk/bar.c Adding /tmp/myproject/trunk/Makefile : Committed revision 1. $ ’ҐЇҐам ў еа Ё«ЁйҐ 室Ёвбп нв® ¤ҐаҐў® ¤ ле. Љ Є Ўл«® ®в¬ҐзҐ® а ҐҐ, ўл Ґ гўЁ¤ЁвҐ бў®Ёе д ©«®ў Ґб«Ё § Ј«пЁвҐ ў еа Ё«ЁйҐ Їап¬го; ўбҐ еа Ёвбп ў Ў §Ґ ¤ ле. Ћ¤ Є® ᥩз б ў®®Ўа ¦ Ґ¬ п д ©«®ў п бЁб⥬л еа Ё«Ёй Ё¬ҐҐв ¤ЁаҐЄв®аЁо ўҐа奣® га®ўп б §ў ЁҐ¬ myproject Є®в®а п ᮤҐа¦Ёв ў иг Ёд®а¬ жЁо.
ЋЎа вЁвҐ ўЁ¬ ЁҐ в®, зв® ЇҐаў® з «м п ¤ЁаҐЄв®аЁп /tmp/project ®бв Ґвбп ЎҐ§ Ё§¬ҐҐЁ©; Subversion ® Ґ© Ґ § Ґв. (” ЄвЁзҐбЄЁ, ЇаЁ ¦Ґ« ЁЁ, ўл ¬®¦ҐвҐ ¤ ¦Ґ г¤ «Ёвм нв®в Є в «®Ј.) —в®Ўл з вм а Ў®в вм б Ёд®а¬ жЁҐ© еа Ё«Ёй ў ¬ 㦮 ᮧ¤ вм ®ўго <а Ў®зго Є®ЇЁо> Ёд®а¬ жЁЁ, бў®ҐЈ® த з б⮥ а Ў®зҐҐ Їа®бва бвў®. Џ®Їа®бЁвҐ Subversion ᮧ¤ вм а Ў®зго Є®ЇЁо ¤ЁаҐЄв®аЁЁ myproject/trunk еа Ё«Ёй :
$ svn checkout file:///path/to/repos/myproject/trunk myproject A myproject/foo.c A myproject/bar.c A myproject/Makefile : Checked out revision 1. ‘Ґ©з б г ў б ў ®ў®© ¤ЁаҐЄв®аЁЁ myproject Ґбвм «Ёз п Є®ЇЁп з бвЁ еа Ё«Ёй . ‚ а Ў®зҐ© Є®ЇЁЁ ўл ¬®¦ҐвҐ । ЄвЁа®ў вм д ©«л, § ⥬ § дЁЄбЁа®ў вм ўҐбҐлҐ Ё§¬ҐҐЁп ў еа Ё«ЁйҐ.
- ЋвЄа®©вҐ бў®о а Ў®зго Є®ЇЁо Ё ®в। ЄвЁаг©вҐ ᮤҐа¦Ё¬®Ґ д ©«®ў.
- ‚лЇ®«ЁвҐ svn diff зв®Ўл гўЁ¤Ґвм ®ЎкҐ¤ЁҐл© diff ўҐбҐле Ё§¬ҐҐЁ©.
- ‚лЇ®«ЁвҐ svn commit ¤«п дЁЄб жЁЁ ®ў®© ўҐабЁЁ ў иЁе д ©«®ў ў еа Ё«ЁйҐ.
- ‚лЇ®«ЁвҐ svn update ¤«п ЇаЁўҐ¤ҐЁп а Ў®зҐ© Є®ЇЁЁ ў < Єв㠫쮥> б®бв®пЁҐ Ї® ®в®иҐЁо Є еа Ё«Ёйг.
Џ®б«Ґ нв®Ј® ўл ¬®¦ҐвҐ ᤥ« вм ў иҐ еа Ё«ЁйҐ ¤®бвгЇл¬ ¤«п ¤агЈЁе зҐаҐ§ бҐвм. ‘¬. ѓ« ў я6, Ќ бва®©Є бҐаўҐа ¤«п § Є®¬бвў б а §«Ёзл¬Ё вЁЇ ¬Ё ¤®бвгЇле бҐаўҐале Їа®жҐбб®ў Ё ¬Ґв®¤ ¬Ё Ёе бва®©ЄЁ.
ЏаҐ¤.я | “а®ўҐм ўлиҐ | я‘«Ґ¤. |
Љ®¬Ї®Ґвл Subversionя | ‘®¤Ґа¦ ЁҐ | яѓ« ў 2. Ћб®ўлҐ Ї®пвЁп |
‡ ¬Ґз ЁҐ, ®в®бп饥бп Є ®Єаг¦ о饬г ⥪бвг.
‚л ¬®¦ҐвҐ Є®ЇЁа®ў вм д ©«л в®«мЄ® ўгваЁ ®¤®Ј® еа Ё«Ёй . Subversion Ґ Ї®¤¤Ґа¦Ёў Ґв ¬Ґ¦еа Ё«Ёй®Ј® Є®ЇЁа®ў Ёп.
Subversion does not support moving between working copies and URLs. In addition, you can only move files within a single repository-Subversion does not support cross-repository moving.
WC -> WCMove and schedule a file or directory for addition (with history).
URL -> URLComplete server-side rename.
By default, you cannot modify revision properties in a Subversion repository. Your repository administrator must explicitly enable revision property modifications by creating a hook named pre-revprop-change. See
ЏаҐ¤.я | “а®ўҐм ўлиҐ | я‘«Ґ¤. |
svn proplistя | ‘®¤Ґа¦ ЁҐ | яsvn resolved |
If you provide no targets to svn revert, it will do nothing-to protect you from accidentally losing changes in your working copy, svn revert requires you to provide at least one target.
ЏаҐ¤.я | “а®ўҐм ўлиҐ | я‘«Ґ¤. |
svn resolvedя | ‘®¤Ґа¦ ЁҐ | яsvn status |
--show-updates only places an asterisk next to items that are out of date (that is, items that will be updated from the repository if you run svn update). --show-updates does not cause the status listing to reflect the repository's version of the item.
And finally, the most information you can get out of the status subcommand:
$ svn status --show-updates --verbose wc M 965 938 sally wc/bar.c * 965 922 harry wc/foo.c A + 965 687 harry wc/qax.c 965 687 harry wc/zig.c Head revision: 981 For many more examples of svn status, see
ЏаҐ¤.я | “а®ўҐм ўлиҐ | я‘«Ґ¤. |
svn revertя | ‘®¤Ґа¦ ЁҐ | яsvn switch |