Help algosvn — различия между версиями

Материал из CSC Wiki
Перейти к:навигация, поиск
(Пользуемся)
(Основные команды работы с svn из консоли)
 
(не показано 13 промежуточных версий 2 участников)
Строка 1: Строка 1:
== Устанавливаем, учимся ==
+
== Общие слова ==
  
 
svn -- система контроля версий. Что даёт svn?
 
svn -- система контроля версий. Что даёт svn?
Строка 6: Строка 6:
  
 
2. Контроль версий, никакая версия файлов не потеряется
 
2. Контроль версий, никакая версия файлов не потеряется
 +
 +
== Устанавливаем ==
  
 
Скачайте клиент:
 
Скачайте клиент:
  
* [https://sourceforge.net/projects/win32svn/ консольный клиент для svn (windows, subversion)]. В linux: <code>sudo apt-get install subversion</code>
+
* Windows [https://sourceforge.net/projects/win32svn/ консольный клиент для svn (windows, subversion)], не забудьте путь к svn.exe добавить в PATH, чтобы в консоли работало слово svn
 +
 
 +
* Linux: <code>sudo apt-get install subversion</code>
 +
 
 +
* DEPRECATED: [https://tortoisesvn.net/downloads.html gui клиент для svn] (опыт предыдущих поколений показал, что ребята, которые учатся через gui, к середине октября всё ещё не могут в svn)
 +
 
 +
== Основные команды работы с svn из консоли ==
 +
 
 +
Команды одинаковы и в windows, и в linux. Пожалуйста, научитесь сперва работать в консоли. И с svn тоже из консоли.
 +
 
 +
'''1. Выкачать себе текущую ветку:''' <code>svn checkout https://trac.compscicenter.ru/hse-svn/algo19/kopeliovich.sergey/</code> (checkout=co)
 +
 
 +
[[Файл:svn_co.jpg]]
  
* [https://tortoisesvn.net/downloads.html gui клиент для svn]
+
'''2. Создать новые директории, файлы, добавить их в svn:''' <code>svn add filename</code> (изменение произойдёт локально, только у вас)
  
Основные команды работы с svn для консоли. В графическом интерфейсе называется примерно также.
+
[[Файл:svn_add.jpg]]
  
* Выкачать себе текущую ветку: <code>svn checkout http://mit.spbau.ru/svn/algo17b/yutman.mikhail</code> (checkout=co)
+
'''3. Синхронизировать локальные изменение с сервером:''' <code>svn commit -m "comment"</code> (commit=ci, сохранить все локальные изменения на сервере)
  
* Добавить файл: <code>svn add filename</code> (изменение произойдёт локально, только у вас)
+
[[Файл:svn_ci.jpg]]
  
* Синхронизировать локальные изменение с сервером: <code>svn commit -m "comment"</code> (commit=ci, сохранить все локальные изменения на сервере)
+
'''4. Командой''' <code>svn status</code> (status=st) можно смотреть текущее состоянии файлов (что вы поменяли по сравнению с тем, что скачали с сервера)
  
* Посмотреть текущее состояние файлов: <code>svn status</code> (status=st, что вы поменяли по сравнению с тем, что скачали с сервера)
+
[[Файл:svn_st.jpg]]
  
* Скачать всё новое с сервера: <code>svn update</code> (update=up)
+
Когда думаете, что "сдали дз", не забывайте командой svn st проверять, что всё закоммитили на сервер.
  
[http://divvun.no/doc/tools/docu-svn-user.html#Frequently+used+commands Чуть подробнее]
+
== Дополнительные команды работы с svn из консоли ==
  
[http://web-polyglot.ru/2010/05/28/kratkaya-instrukciya-po-rabote-s-svn-subversion-dlya-polzovatelej/ Подробнее про работу с gui клиентом]
+
'''5. Командой''' <code>svn diff</code> можно смотреть изменения
 +
 
 +
[[Файл:svn_diff.jpg]]
 +
 
 +
'''6. Командой''' <code>svn log</code> можно смотреть историю изменений файлов
 +
 
 +
[[Файл:svn_log.jpg]]
 +
 
 +
чуть более компактный вид
 +
 
 +
[[Файл:svn_log2.jpg]]
 +
 
 +
'''7. Можно даже смотреть разницу между разными версиями
 +
 
 +
[[Файл:svn_diff2.jpg]]
 +
 
 +
'''8. Если вы добавили лишнее, хотите удалить''' <code>svn remove</code> (remove=rm, изменение произойдёт локально, только у вас)
 +
 
 +
[[Файл:svn_rm.jpg]]
 +
 
 +
'''9. Если вы неправильно назвали файл, переименуйте''' <code>svn move</code> (move=mv, изменение произойдёт локально, только у вас). Пожалуйста, не делайте remove+add, тогда теряется история изменений
 +
 
 +
[[Файл:svn_mv.jpg]]
 +
 
 +
== Стандартные ошибки ==
 +
 
 +
1. Что-то случайно удалили, хотите вернуть всё, как было? Напишите <code>svn up</code>
 +
 
 +
2. Что-то случайно поменяли, хотите вернуть всё, как было? Удалите файл, напишите <code>svn up</code>
 +
 
 +
3. Хотели удалить файл <code>svn rm a.cpp</code>, но вместо этого сделали просто <code>rm a.cpp</code>?
 +
 
 +
[[Файл:svn_rm_fail.jpg]]
 +
 
 +
4. Переименовывать любые файлы/директории нужно именно через <code>svn mv</code>
 +
 
 +
== Ссылки ==
 +
 
 +
Как гуглить: "svn move file", "svn resolve conflict"
 +
 
 +
[https://eax.me/svn-commands/ Чуть подробнее про svn с примерами]
  
 
[http://www.tutorialspoint.com/svn/ Всё про svn]
 
[http://www.tutorialspoint.com/svn/ Всё про svn]
  
== Пользуемся ==
+
[http://svnbook.red-bean.com/en/1.7/svn.ref.html Help по всем командам svn]
 +
 
 +
== Пользуемся для алгоритмов ==
  
 
Сделаем наш svn-мир упорядоченным.
 
Сделаем наш svn-мир упорядоченным.
  
Если у вас прошла практика 12-го сентября 2019-го года, то файл с практикой называется так:
+
Если у вас прошла практика 9-го сентября 2019-го года, то файл с практикой называется так: http://acm.math.spbu.ru/~sk1/courses/1920f_au/practice/190909.pdf
 
 
pdf: http://acm.math.spbu.ru/~sk1/courses/1920f_au/practice/190912.pdf
 
  
Решение нужно положить в свой svn (e.g. https://trac.compscicenter.ru/hse-svn/algo19/morozov.aleksandr/)
+
Решение нужно положить в свой svn (e.g. https://trac.compscicenter.ru/hse-svn/algo19/kopeliovich.sergey/)
  
В файл <code>algo19/morozov.aleksandr/190912/hw.tex</code> &nbsp;(проверьте и имя директории, и имя файла).
+
В файл <code>algo19/kopeliovich.sergey/190909/hw.tex</code> &nbsp;'''(проверьте, что имя директории и имя файла ровно такие же)'''.
  
В svn следует класть только tex файл. pdf-ку из tex может собрать каждый. Если вы собираете каким-нибудь не стандартным способом, рядом следует класть скрипт сборки (Makefile или .sh файл).
+
В svn следует класть '''только''' tex файл. pdf-ку из tex может собрать каждый. Если вы собираете каким-нибудь не стандартным способом, рядом следует класть скрипт сборки (Makefile или .sh файл).
  
 
Нужно ли писать письма на почту? Если ощущение, что про вас и вашу домашнюю работу забыли, вам не хватает внимания -- да, нужно. Если вы просто закоммитили свою домашнюю работу в svn, не обязательно, мы и так это увидим.
 
Нужно ли писать письма на почту? Если ощущение, что про вас и вашу домашнюю работу забыли, вам не хватает внимания -- да, нужно. Если вы просто закоммитили свою домашнюю работу в svn, не обязательно, мы и так это увидим.

Текущая версия на 20:48, 14 сентября 2021

Общие слова

svn -- система контроля версий. Что даёт svn?

1. Доступ к файлам для нескольких пользователей

2. Контроль версий, никакая версия файлов не потеряется

Устанавливаем

Скачайте клиент:

  • Linux: sudo apt-get install subversion
  • DEPRECATED: gui клиент для svn (опыт предыдущих поколений показал, что ребята, которые учатся через gui, к середине октября всё ещё не могут в svn)

Основные команды работы с svn из консоли

Команды одинаковы и в windows, и в linux. Пожалуйста, научитесь сперва работать в консоли. И с svn тоже из консоли.

1. Выкачать себе текущую ветку: svn checkout https://trac.compscicenter.ru/hse-svn/algo19/kopeliovich.sergey/ (checkout=co)

Svn co.jpg

2. Создать новые директории, файлы, добавить их в svn: svn add filename (изменение произойдёт локально, только у вас)

Svn add.jpg

3. Синхронизировать локальные изменение с сервером: svn commit -m "comment" (commit=ci, сохранить все локальные изменения на сервере)

Svn ci.jpg

4. Командой svn status (status=st) можно смотреть текущее состоянии файлов (что вы поменяли по сравнению с тем, что скачали с сервера)

Svn st.jpg

Когда думаете, что "сдали дз", не забывайте командой svn st проверять, что всё закоммитили на сервер.

Дополнительные команды работы с svn из консоли

5. Командой svn diff можно смотреть изменения

Svn diff.jpg

6. Командой svn log можно смотреть историю изменений файлов

Svn log.jpg

чуть более компактный вид

Svn log2.jpg

7. Можно даже смотреть разницу между разными версиями

Svn diff2.jpg

8. Если вы добавили лишнее, хотите удалить svn remove (remove=rm, изменение произойдёт локально, только у вас)

Svn rm.jpg

9. Если вы неправильно назвали файл, переименуйте svn move (move=mv, изменение произойдёт локально, только у вас). Пожалуйста, не делайте remove+add, тогда теряется история изменений

Svn mv.jpg

Стандартные ошибки

1. Что-то случайно удалили, хотите вернуть всё, как было? Напишите svn up

2. Что-то случайно поменяли, хотите вернуть всё, как было? Удалите файл, напишите svn up

3. Хотели удалить файл svn rm a.cpp, но вместо этого сделали просто rm a.cpp?

Svn rm fail.jpg

4. Переименовывать любые файлы/директории нужно именно через svn mv

Ссылки

Как гуглить: "svn move file", "svn resolve conflict"

Чуть подробнее про svn с примерами

Всё про svn

Help по всем командам svn

Пользуемся для алгоритмов

Сделаем наш svn-мир упорядоченным.

Если у вас прошла практика 9-го сентября 2019-го года, то файл с практикой называется так: http://acm.math.spbu.ru/~sk1/courses/1920f_au/practice/190909.pdf

Решение нужно положить в свой svn (e.g. https://trac.compscicenter.ru/hse-svn/algo19/kopeliovich.sergey/)

В файл algo19/kopeliovich.sergey/190909/hw.tex  (проверьте, что имя директории и имя файла ровно такие же).

В svn следует класть только tex файл. pdf-ку из tex может собрать каждый. Если вы собираете каким-нибудь не стандартным способом, рядом следует класть скрипт сборки (Makefile или .sh файл).

Нужно ли писать письма на почту? Если ощущение, что про вас и вашу домашнюю работу забыли, вам не хватает внимания -- да, нужно. Если вы просто закоммитили свою домашнюю работу в svn, не обязательно, мы и так это увидим.