• Save
SVN
Upcoming SlideShare
Loading in...5
×
 

Like this? Share it with your network

Share

SVN

on

  • 260 views

 

Statistics

Views

Total Views
260
Views on SlideShare
260
Embed Views
0

Actions

Likes
0
Downloads
0
Comments
0

0 Embeds 0

No embeds

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

SVN Presentation 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