Changes between Version 43 and Version 44 of WikiStart


Ignore:
Timestamp:
09/16/21 20:39:56 (3 years ago)
Author:
Ilya Makarov
Comment:

Добавлено описание

Legend:

Unmodified
Added
Removed
Modified
  • WikiStart

    v43 v44  
    1 Процесс проверки ДЗ:
     1== Процесс проверки ДЗ
    22
    331. Для каждой домашней работы должна быть создана отдельная папка в Subversion-репозитории. Точное имя директории, а также список и названия исходных файлов, которые необходимо использовать, будут указаны в формулировке задачи. Не кладите в репозиторий ненужные файлы (файлы проектов, настройки IDE, бинарники и т. д.).
     
    1212
    1313Уважайте, пожалуйста, труд проверяющего преподавателя.
     14
     15== Краткое описание того, как пользоваться Subversion:
     16
     17Предположим, что вы получили следующие данные для авторизации в Subversion:
     18
     19* Логин: ilya.makarov
     20* Пароль: 123qwe!
     21* Адрес репозитория будет такой: https://trac.compscicenter.ru/itmo-svn/cpp21/ilya.makarov/ (это адрес вашей папки в репозитории).
     22
     23Для того, чтобы загрузить туда своё домашнее задание, совершенно бесполезно открывать соответствующую ссылку в браузере. Для работы с Subversion нужно поставить и использовать клиент.
     24
     25О Subversion и используемых в нём сущностях и понятиях можно прочитать в ​данной книге [http://svnbook.red-bean.com/nightly/ru/index.html].
     26
     27* Самый простой способ для Windows пользователей - поставить графический клиент [https://tortoisesvn.net/ ​TortoiseSVN], с которым всё просто и приятно. Для него доступна [https://tortoisesvn.net/docs/release/TortoiseSVN_ru/index.html ​документация на русском языке], в которой описаны [https://tortoisesvn.net/docs/release/TortoiseSVN_ru/tsvn-qs-basics.html ​основные концепции Subversion], [https://tortoisesvn.net/docs/release/TortoiseSVN_ru/tsvn-dug-checkout.html ​как сделать выгрузку], ​[https://tortoisesvn.net/docs/release/TortoiseSVN_ru/tsvn-dug-commit.html как добавить файлы и закоммитить в репозиторий], [https://tortoisesvn.net/docs/release/TortoiseSVN_ru/tsvn-dug-wcstatus.html ​как понять текущее состояние репозитория].
     28* Если у Вас не Windows или вы хотите всё делать из консоли, то смело ставьте консольный клиент (например, sudo apt-get install subversion на Debian-based дистрибутиве Linux). Для консольного клиента доступно ​руководство по использованию на русском языке, в котором описаны ​[http://svnbook.red-bean.com/nightly/ru/svn.basic.html фундаментальные понятия], [http://svnbook.red-bean.com/nightly/ru/svn.tour.initial.html ​как сделать выгрузку], [http://svnbook.red-bean.com/nightly/ru/svn.tour.cycle.html ​как добавить файлы, закоммитить в репозиторий, понять текущее состояние репозитория].
     29
     30=== Примерная последовательность команд
     31
     321. При помощи клиента нужно выгрузить (**checkout**) репозиторий - у Вас создастся папка на компьютере.
     33
     342. После этого нужно создать внутри папку для домашнего задания.
     35
     363. Положить в неё свои файлы. Добавить (**add**) папку к репозиторию.
     37
     384. Сделать коммит (**commit**) изменений на сервер.
     39
     40**ВНИМАНИЕ: не стоит добавлять в репозиторий лишние файлы, такие как бинарные файлы или служебные файлы вашей IDE.**
     41
     42=== Пример работы из консоли
     43
     44Для консольных пользователей последовательность команд должна быть примерно такой:
     45
     46
     47{{{
     48    $ svn checkout https://trac.compscicenter.ru/itmo-svn/cpp21/ilya.makarov/ --username ilya.makarov
     49    [ вводите пароль ]
     50    $ cd ilya.makarov
     51    $ mkdir ha1
     52
     53    [ кладёте в ha1 свои .cpp и .hpp файлы + Makefile ]
     54
     55    $ svn add ha1
     56    $ svn commit -m "Home assignment #1"
     57    [ теперь добавленные файлы доступны на сервере ]
     58
     59    [ предположим, теперь нужно исправить ошибку в ha1/main.cpp ]
     60    [ вносите исправления в ha1/main.cpp ]
     61
     62    $ svn add ha1/main.cpp
     63    $ svn commit -m "Fix main function"
     64    [ исправления отправлены на сервер ]
     65}}}
     66
     67=== Закрепление изменений в репозитории
     68Закрепление (**commit**) изменений в SVN происходит в две стадии, независимо от того, сдаёте вы домашнее задание в первый раз или исправляете.
     69
     70Сначала вы отмечаете файлы, которые надо добавить/удалить из репозитория. Подключение к интернету для этого не требуется. Отмечать файлы, которые в репозитории уже были, но поменялись, не требуется, они обнаружатся автоматически.
     71После этого вы выполняете команду `svn commit`, которая просит указать комментарий к внесённым изменениям (опционально) и отправляет данные на сервер. Для этого требуется подключение к интернету.
     72
     73Как отмечать файлы:
     74
     751. Перейдите в корень личного репозитория.
     762. Командой `svn status` выясните текущее состояние файлов в репозитории. Каждый файл/папка в необычном состоянии будет выведен отдельной строкой.
     77   * Знаком **?** отмечены файлы или папки, которые не добавлены в репозиторий ни в каком виде.
     78   * Знаком **A** отмечены файлы или папки, которые будут добавлены в репозиторий в ближайшем коммите.
     79   * Знаком **D** отмечены файлы или папки, которые будут удалены из репозитория в ближайшем коммите.
     80   * Знаком **M** отмечены файлы или папки, которые изменились по сравнению с последним коммитом. Эти изменения будут закреплены в ближайшем коммите.
     81   * Знаком **!** отмечены файлы или папки, которые на диске отсутствуют, но которые были отмечены для добавления в репозиторий командой `svn add`.
     823. Если есть файлы, которые в репозиторий добавлять не требуется (например, исполняемые файлы), уберите их командой `svn rm --keep-local lab1`. Ключ `--keep-local` означает "удалить файл из репозитория, но не с жёсткого диска".
     834. Командой `svn status` убедитесь, что в репозиторий отправляются только нужные файлы, а ненужные (объектные файлы, исполняемый файл, временные файлы для отладки) — не отправляются.
     845. Вы также можете научить svn игнорировать файлы с определённым именем в произвольной папке, чтобы можно было обновлять всю папку рекурсивно — см. ниже (это не требуется для сдачи ДЗ).
     856. Выполните команду `svn commit` и введите комментарий к коммиту.
     86
     87=== Игнорирование файлов
     88
     89Если вы уже добавили ненужные файлы по ошибке, уберите их командой `svn rm --keep-local`.
     90
     91Выполните команду `svn propedit svn:ignore .` в папке, для которой требуется настроить игнорирование.
     92
     93В открывшемся текстовом редакторе напишите маски для имён файлов, которые надо игнорировать, по одной на строчку. Например: `*.obj` или `.in`.
     94
     95Скорее всего, у вас открылся редактор nano. В нём нельзя выделять текст, но можно его писать и стирать. Сохраните файл и закройте редактор.
     96
     97Из редактора nano можно одновременно выйти и сохранить файл сочетанием клавиш **Ctrl+X**. После этого сочетания надо либо согласиться сохранить файл (**y**), либо отказаться (**n**). Имя файла для сохранения оставьте без изменений.
     98
     99Командой `svn status` убедитесь, что все ненужные файлы теперь игнорируются, а папка с обновлённым правилами игнорирования помечена буквой **M**.
     100