SVN. За час.

(22:26:07) Серёджа: будем использовать svn.

(22:26:11) В.: это что такое?

(22:26:48) Серёджа: https://ru.wikipedia.org/wiki/Subversion

(22:27:08) Серёджа: это система контроля версий

(22:28:01) В.: а есть какая-нибудь ломанная её копию, чтобы посмотреть чего она из себя представляет?

(22:28:13) Серёджа: это же опенсорс

(22:28:22) Серёджа: там должна быть ссылка на тортойз

(22:28:50) Серёджа: https://tortoisesvn.net/

(22:29:01) Серёджа: качай. покажу как пользоваться

(22:33:37) Серёджа: ну ладно. Ты себе Tortoise поставь

(22:33:48) В.: блин. я тут пока врубаюсь че мне качать)

(22:33:56) Серёджа: ща скажу

(22:37:04) Серёджа: https://osdn.net/projects/tortoisesvn/storage/1.14.0/Application/TortoiseSVN-1.14.0.28885-win32-svn-1.14.0.msi/

(22:38:26) В.: качается

(22:41:30) В.: ога скачала

(22:42:30) Серёджа: ставь. Он потребует перезагрузки

(22:42:37) В.: ога

(22:42:40) В.: щас. вернусь

(22:47:53) В.: тут

(22:48:01) Серёджа: ага.

(22:48:04) В.: хм. а русификация к нему есть?

(22:48:33) Серёджа: щас объясню всё, можно будет без русификации обойтись.

(22:48:38) В.: давай

(22:48:39) Серёджа: создай пустую папку.

(22:49:23) В.: есть

(22:49:31) Серёджа: тыкай на ней задней кнопкой

(22:49:45) Серёджа: и выбирай: создать репозиторий

(22:50:15) В.: ога

(22:50:46) Серёджа: получилось? Я просто не очень помню, как там репозитории создавать.

(22:51:01) В.: да

(22:51:02) Серёджа: значит. это обычно делают админы на сервере.

(22:51:27) Серёджа: теперь делаешь в другом месте другую папку.

(22:51:55) В.: и?

(22:52:08) Серёджа: тыкаешь на ней задней кнопкой и говоришь checkout

(22:52:55) В.: и?

(22:53:05) Серёджа: он что-нибудь спрашивает?

(22:53:11) В.: какуую то фигню вывел

(22:53:23) В.: видимо URL надо ввести

(22:53:34) Серёджа: вводишь путь до репозитория

(22:53:42) Серёджа: который только что создала

(22:53:47) В.: ввела. не нравится путь

(22:53:57) Серёджа: тогда перед ним ставишь file:///

(22:54:09) В.: ога. проканало

(22:54:21) Серёджа: круто. Это ты сделала рабочую копию

(22:54:22) В.: ещё одну фигню вывел и написал в ней 0

(22:54:29) Серёджа: круто. это нулевая ревизия

(22:54:46) В.: ога

(22:54:48) В.: а дальше?

(22:55:01) Серёджа: обычно путь до репозитория выглядит как-нибудь вроде: https://svn.osdn.net/svnroot/tortoisesvn/

(22:55:15) Серёджа: ну в смысле, когда он на серваке

(22:55:31) Серёджа: дальше. можно работать. создай там текстовый файл

(22:55:42) Серёджа: и напиши чего-нибудь в несколько строчек

(22:57:40) В.: ога. я уже файл запихала в первую папку.

(22:57:52) В.: ну он типа сохранился в хранилище

(22:58:01) Серёджа: сделала коммит?

(22:58:09) В.: да

(22:58:12) Серёджа: круто.

(22:58:25) Серёджа: ты видишь, зелёную галочку?

(22:58:28) В.: гы) что ещё можно с ним делать. ну запихаю я туда кучу файлов. и что?

(22:58:47) Серёджа: выйди так, что можно видеть папку рабочей копии

(22:58:54) В.: резолвед?

(22:59:09) Серёджа: не.

(22:59:11) Серёджа: погоди

(22:59:18) Серёджа: ты сделала коммит?

(22:59:43) Серёджа: резолвед, это значит у тебя уже конфликты какие-то пошли

(23:00:05) В.: да. в рабочей папке сделала коммит. и файл закопировался в хранилище или как его обозвать не знаю

(23:00:19) Серёджа: в репозиторий

(23:00:22) Серёджа: хорошо.

(23:00:22) В.: нет. я вижу зелёную галку резолвед.

(23:00:26) Серёджа: отлично

(23:00:27) В.: других галок не вижу

(23:00:39) Серёджа: теперь войди в папку измени файл

(23:00:49) Серёджа: добавь пару строчек и измени какие-нибудь

(23:01:15) Серёджа: Выйди на уровень вверх потом

(23:01:17) В.: изменила.

(23:01:21) Серёджа: увидишь, что папка стала красной

(23:01:21) В.: и?

(23:01:30) В.: неа. не стала.

(23:01:59) Серёджа: странно. тыкай на ней задней кнопкой и выбирай check for modifications

(23:02:05) В.: хм. вот черт. это только через Проводник она стала красной: (

(23:02:14) Серёджа: ну не важно.

(23:02:57) Серёджа: check for modifications показывает отличия. можно ткнуть на файл и выбрать diff , увидишь что конкретно изменилось

(23:03:15) В.: ога вижу

(23:03:20) Серёджа: хорошо. закрывай.

(23:03:24) Серёджа: делай коммит.

(23:03:39) Серёджа: В коммите есть комментарий — полезная штука

(23:03:54) Серёджа: Заметь. В репозиторий сохраняются только изменения.

(23:04:14) Серёджа: то есть это ты не второй файл туда залила, а только сохранила информацию о том, как файл изменился.

(23:04:47) Серёджа: точно так же и наоборот. Когда кто-то что-то изменил, а ты делаешь апдейт

(23:04:57) Серёджа: то ты тоже выкачиваешь только изменения

(23:05:05) Серёджа: удобно.

(23:05:16) Серёджа: хорошо. Теперь тыкай на папку и говори show log

(23:06:31) В.: круто — могу и старые файлы видеть!!!

(23:06:38) В.: получилось.

(23:06:43) В.: а что ещё оно умеет?

(23:06:44) Серёджа: show log ?

(23:06:48) В.: да

(23:06:56) В.: она все версии показывает.

(23:07:00) В.: и старые и новые

(23:07:00) Серёджа: ты можешь тнуть на любую ревизию и сапдейтиться до неё.

(23:07:05) В.: и отличия показывает

(23:07:25) Серёджа: т е. сказать update to revision и у тебя будет версия как сто лет назад

(23:08:06) Серёджа: Дальше. Бывает, что всякие проги создают в рабочей копии всякие левые файлы и папки, которым в репозитории не место.

(23:08:26) Серёджа: например скомпилированый ехе файл коммитить незачем

(23:08:27) В.: угу

(23:08:36) Серёджа: создай какой-нибудь файл

(23:08:38) В.: ога

(23:08:55) В.: ога

(23:08:56) Серёджа: на папке ткни check for modifications

(23:09:08) Серёджа: он будет nonversioned

(23:09:26) В.: угу и?

(23:09:27) Серёджа: тыкаешь по нему и говоришь Add to ignore .

(23:09:39) В.: угу

(23:09:48) Серёджа: например, если еэто error.log

(23:09:57) В.: ога. сделала саммит.

(23:09:58) Серёджа: то можно в игнор добавить *.log

(23:10:06) В.: ненужный файл туда не попал!

(23:10:19) В.: ога. понятно

(23:10:21) Серёджа: и все эти файлы не будут коммитится и не будут отображаться в  check for modifications

(23:10:30) В.: понятно

(23:10:36) Серёджа: теперь. Ты что-то понаписала, хочешь откатить.

(23:10:40) В.: угу

(23:10:42) В.: и?

(23:10:43) Серёджа: делаешь revert

(23:10:56) Серёджа: revert убирает все изменения из рабочей копии

(23:11:17) Серёджа: дальше. Создай себе где-нибудь ещё одну рабочую копию.

(23:11:27) В.: работает!

(23:12:34) Серёджа: Измени в ней файл и сделай коммит.

(23:12:45) В.: да и в новую рабочую папку обновила по репозиторию

(23:13:42) В.: да и в старой рабочей папке апдейтилась и увидела изменения что сделала в новой рабочей папке

(23:13:47) В.: а что ещё можно?

(23:13:53) Серёджа: А в первой папке измени файл в том же месте, где в той, только по другому.

(23:13:58) Серёджа: чтобы конфликт возник

(23:14:03) В.: ога

(23:14:09) В.: а если я его переименую?

(23:14:16) Серёджа: не. ща

(23:14:25) В.: изменила и че делать?

(23:14:34) В.: я их переименовала)

(23:14:34) Серёджа: теперь апдейться

(23:14:43) Серёджа: ну. давай поочереди

(23:15:22) Серёджа: заметь. Что переименовывать и копировать лучше не стандартными copy и  move , а теми, которые в  subversion вкладке

(23:15:44) Серёджа: Потому что тогда в репозиторий сохраняется только информация о том, что что-то скопировано.

(23:15:48) Серёджа: только изменение.

(23:16:04) В.: ога возник конфликт

(23:16:17) Серёджа: говори edit

(23:16:24) Серёджа: edit conflict

(23:16:26) В.: и?

(23:16:29) Серёджа: ну или как там. не помню

(23:16:38) Серёджа: у тебя старая, новая и снизу общая

(23:16:42) В.: а где это сказать?

(23:16:49) Серёджа: на красной строчке задней кнопкой

(23:16:52) В.: че?

(23:17:18) Серёджа: задней кнопкой на красной строчке говоришь edit conflict

(23:17:41) Серёджа: Или ты окошко уже закрыла?

(23:17:48) В.: open parent folder и  copy to clipboard предалгает (

(23:17:54) В.: нет. не закрыла.

(23:17:58) Серёджа: что за гон

_(23:18:07) В.:

(23:18:16) Серёджа: а. ну да.

(23:18:30) Серёджа: Вообще есть правило. Перед коммитом всегда апдейтиться

(23:18:49) Серёджа: Это помогает избежать неприятностей

(23:20:26) Серёджа: ты сапдейтилась?

(23:20:35) Серёджа: во время апдейта должен был возникнутьконфликт

(23:22:02) В.: окошко пока открыто. не могу конфликт разрешить

(23:22:11) В.: в логи отсюда выхожу.

(23:22:14) Серёджа: так. ладно. закрывай все окошки.

(23:22:25) В.: и что делать?

(23:22:33) Серёджа: апдейт ты сделала?

(23:22:45) В.: не хочу перед коммитом апдлейтиться. это ж все мои изменения убьет.

(23:22:52) Серёджа: нет. не убъёт

(23:22:58) В.: сделала

(23:23:04) Серёджа: перед коммитом надо апдейтиться обязательно

(23:23:11) Серёджа: Конфликт возник?

(23:23:17) В.: возник

(23:23:30) Серёджа: возник красной строчкой?

(23:23:36) В.: да

(23:23:44) Серёджа: тыкаешь на ней, говоришь edit conflict

(23:24:56) Серёджа: Ты проверяешь, что у тебя всё правильно. Компилится там всё, тесты проходят и т.д

(23:25:08) Серёджа: Потом апдейтишься. Проверяешь что снова всё правильно

(23:25:14) Серёджа: Потом коммитишься

(23:25:26) Серёджа: Обычно конфликты не возникают.

(23:25:41) Серёджа: Если изменения в разных частях файла, то он их нормально сам разруливает.

(23:26:05) В.: так стоп и че мне с конфликтом делать?

(23:26:10) В.: он мне открыл два файла.

(23:26:15) В.: ну вижу конфликт и че.

(23:26:26) В.: пытаюсь куданить тыкнуться и сказать что вот тут строка верная.

(23:26:29) Серёджа: тыкаешь задней кнопкой по красной строчке

(23:26:30) В.: а тыкнуться пока не поняла куда

(23:26:40) В.: аааа

(23:26:47) Серёджа: и варианты взять ту, взять эту или взять ту перед этой или взять ту после этой

(23:27:11) В.: а с оранжевыми строками че надо сделать?

(23:27:18) Серёджа: ничего.

(23:27:40) Серёджа: это те изменения, которые произошли с твоего последнего апдейта

(23:27:46) Серёджа: их сделали, наверное, другие люди

(23:27:57) Серёджа: дальше тыкаешь в save там сверху

(23:28:07) Серёджа: и в восклицательный знак, типа всё разрешено.

(23:29:23) В.: в восклиц знак не успела)

(23:29:28) Серёджа: ну ладно.

(23:29:29) В.: но по кр мере это получилось

(23:29:45) Серёджа: если ты не разрешила, то он тебе потом об этом напомнит

(23:29:57) В.: о чем?

(23:30:05) Серёджа: там файлик должен быть обозначен восклицательным знаком

(23:30:11) Серёджа: ну что конфликт не разрешён

(23:30:18) Серёджа: Если разрешён, то всё норм

(23:31:00) В.: дык я ж разрулила конфликт. нет ничего не обозначено

(23:31:10) В.: изменила и обновилась ещё раз. все норм

(23:31:54) Серёджа: ну вот. можно коммититься

(23:32:12) Серёджа: дальше про переименования.

(23:32:37) Серёджа: Если ты просто файл переименуешь, то он подумает, что файл потерялся и появился новый без контроля версий.

(23:32:43) Серёджа: старый он восстановит при апдейте

(23:32:58) Серёджа: Поэтому удалять, копировать, переименовывать надо командами svn

(23:33:40) Серёджа: Чем хорошо. Ты можешь скопировать огромную преогромную папку. А в репозиторий запишется только одна строчка, что такая-то папка была скопирована

(23:33:50) В.: ога получается

(23:34:43) Серёджа: Ну в принципе всё.

(23:34:49) Серёджа: Почитай ещё статейку в википедии

(23:35:23) В.: прикольно в общем.

(23:40:22) В.: а вообще спасибо — прямо просвятил. да ещё и удалённо по аське.