Your SlideShare is downloading. ×
  • Like
  • Save
SVN
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×

Now you can save presentations on your phone or tablet

Available for both IPhone and Android

Text the download link to your phone

Standard text messaging rates apply
Published

 

  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
    Be the first to like this
No Downloads

Views

Total Views
109
On SlideShare
0
From Embeds
0
Number of Embeds
0

Actions

Shares
Downloads
0
Comments
0
Likes
0

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. Subversion (SVN)Open source version control system
  • 2. Въведение в SVN Какво е SVN? Предимства и особености:  Централизирана структура (хранилище <-> локално копие)  Удобен и достъпен backup  Нищо не се трие завинаги  Споделяне на код  Преизползване на код
  • 3. Working copy• Какво представлява working copy?• Каква meta информация съдържат .svn папките? – Референция към пътя на проекта в хранилището – Последна версия на файловете на проекта• Важно - .svn папкитене се трият/променят!
  • 4. Основни операции в SVN Checkout – създава working copy на съответния път от хранилището. Може да се checkout-не специфична ревизия на проекта, като по подразбиране се взима последната. Add – добавя файлове и директории към working copy, подготвя ги за добавяне към хранилището. Това създава първата версия файла или директорията. Commit – изпраща промените на working copy към хранилището, създавайки ревизия. За промени се считат и файлове/директории, които са изтрити, преименувани, липсващи или добавени чрез Add. Препоръчва се да се въвежда commit message. Update – прилага промените от хранилището върху working copy. Извършва Add (A), Delete (D), Update (U), Merge (G) или задава конфликтно състояние Conflict (C). Може да се update-не до ревизия с конкретен номер.
  • 5. Други операции • Core OS операции – имат своите SVN алтернативи (rename, delete). • Revert – необратим процес, съдържанието на файловете и директориите се връща до последната версия. Връщат се и всички SVN properties и се премахват конфликтите. Може да се върне до ревизия с конкретен номер. • Diff – показва всички разлики както между два селектирани файла, така и разликите между сегашната и предишната версия. • Export – експортва цялата директория, премахвайки всички .svn папки.
  • 6. SVN Properties Какво представляват и как се използват SVN properties? svn:ignore  Същност и приложение  Примери:  * - игнорира всичко.  tmp – игнорира директорията tmp.  tmp* - игнорира и всички файлове, започващи с tmp.  *.jpg – игнорира всички jpg файлове.  Защо се налага да използваме svn:ignore?
  • 7. Trac• Какво е trac?• Как работи trac със SVN?• Какво предоставя trac: – Разглеждане на дървото с проекти и кода – Търсене в съобщенията на ревизиите – Разглеждане на revision history – Подробен преглед на разликите между две ревизии – Позволява споделяне на фрагменти код чрез per file/dir, per revision & per line линкове – Сваляне на версии на файловете, или unified diff/zip archive.
  • 8. SVN Conflicts Какво представляват конфликтите? Как и защо възникват? <<<<<<<< .mine? Варианти за разрешаване:  Revert – връща избрания файл или директория до последна ревизия, но изтрива всички направени промени.  Resolved – извиква се след ръчно отстраняване на конфликта. Как да избегнем възникването на конфликти?
  • 9. Практическо приложение• Работа на повече от един разработчици по един проект едновременно.• Мерки по отстраняване на проблеми, свързани с неконсистентни версии на проекти (в случай че клиентът е правил промени отделно от разработчиците).• Diff между различни версии на даден файл.• История на промените в рамките на даден път от хранилището, задаване на обсег от ревизии, в който да се покаже историята.
  • 10. Съвети и често допускани грешки  Как да избегнем празните редове в diff-овете – използване на n  Качване на клиентски сървър – svn export или FTP filename filters  Не трябва да се копират цели папки, които са под SVN  Проекти, качени на клиентски сървъри – винаги трябва да се свалят последните версии и да се commit-ват.  При commit ВИНАГИ трябва да се пише съобщение, съдържащо промените, които са направени в тази ревизия. Най-добре е съобщението да обединява промените по логически и функционален начин.  Съобщенията в tasks.2c-studio.com и SVN са различни по същност.
  • 11. Пример от практиката Работим по WP тема, приключваме и пращаме архив на клиента. Той инсталира темата сам и след няколко месеца ни пише че има проблем с кода. Дава ни FTP достъп. Правим промените по кода (този, който имаме от преди няколко месеца) и започваме да качваме при него. В последствие се разбира, че клиента е направил множество промени по кода. Проблемът може да се реши по 3 начина: 1) Правим промените върху неговия код (много бавно) 2) Гледайки diff с промените, които сме направили днес, правим промените върху неговия код (бавно) 3) Checkout-ваме кода от хранилището (от версията, която сме дали на клиента) в друга папка. Слагаме клиентските файлове върху старата ревизия и правим svn update (до последната ревизия). Отстраняваме евентуалните конфликти. (сложно, но бързо)
  • 12. Заключение• SVN е система с огромно приложение в разработването на всякакъв вид приложения.• Правилното използване на SVN може да спести многобройни часове, прекарани в отстраняване на проблеми с версиите, обмен на данни или търсене на вече написан код.• Всичко, което се случва в SVN има своето логично обяснение и има причина да се случва.• Ако нещо не работи както очаквате, разберете каква е причината – SVN е документиран подробно.
  • 13. Further reading:http://svnbook.red-bean.com/en/1.7/index.html