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 ¤«п ЇаЁўҐ¤Ґ­Ёп а Ў®зҐ© Є®ЇЁЁ ў < Євг «м­®Ґ> б®бв®п­ЁҐ Ї® ®в­®иҐ­Ёо Є еа ­Ё«Ёйг.
„«п Ї®«г祭Ёп Ї®«­®Ј® бЇЁбЄ  ў®§¬®¦­ле ¤Ґ©бвўЁ© б а Ў®зҐ© Є®ЇЁҐ© Їа®звЁвҐ ѓ« ў я3, ќЄбЄгабЁп Ї® Subversion.
Џ®б«Ґ нв®Ј® ўл ¬®¦ҐвҐ ᤥ« вм ў иҐ еа ­Ё«ЁйҐ ¤®бвгЇ­л¬ ¤«п ¤агЈЁе зҐаҐ§ бҐвм. ‘¬. ѓ« ў я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 for more information on hook scripts.
ЏаҐ¤.я“а®ўҐ­м ўлиҐя‘«Ґ¤.
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


Содержание раздела