tortoisesvn что это за программа
Небольшая автоматизация работы с TortoiseSVN в Windows
TortoiseSVN – замечательный клиент для SVN. И ничего лишнего вроде бы нет и возможностей много.
Один лишь недостаток – работает все это дело через Explorer (Проводник). В других файловых менеджерах работа с TortoiseSVN несколько неудобнее, либо вообще невозможна.
Для Total Commander, пользователем которого я являюсь, решение есть (включить оверлей у иконок, да пользоваться кнопкой с popupMenu на клавиатуре), но на х64 системах оно не работает, проверил лично.
Раз уж я пользуюсь TC и сижу на х64, пришлось придумать что-нибудь для более удобной работы с клиентом, нежели чем через Проводник. Долго думать не пришлось – черепашка поддерживает работу через командную строку. Поэтому решил просто сделать два командных файлика в папку с проектом и периодически, по мере возникновения такой нужды, их запускать. Файлики для Commit’а и Update’а.
Сама TortoiseSVN – это TortoiseProc.exe, ее можно найти в папке Bin там, куда установлена программа. Основной параметр, с которым мы будем работать — это /command. У него есть свой набор значений, который и определяет все остальные ключи. Команд столько же, сколько и пунктов в контекстном меню Проводника на папке, но интересуют нас только несколько: log, update, commit.
Для первой, log, нужно задать только /url:»[url_к_проекту]«, а для остальных указать еще и локальный путь к проекту через /path:»[путь_к_проекту]«.
ВНИМАНИЕ! Для работы из командной строки обязательно наличие ключа /notempfile. Иначе, как минимум, не будет работать. А может и файл удалить, указанный в ключе /path.
В общем-то, ничего сложного тут и нет вовсе.
У меня получилось так:
commit.cmd:
По остальным командам можно поглядеть справку, там под это отведен раздел.
Вот такие три файлика положил я себе в папку с проектом и для удобства вывел shortcut’ы на них в собственную панельку в трее, посвященную веб. Shortcut’ы просто для того, чтобы стартовать cmd’шки минимизированными, чтобы окошко черное не маячило позади диалога.
Управление хаосом или TortoiseSVN
Данная статья посвящена моему знакомству с клиентом TortoiseSVN под WIndows. В сети много информации на эту тему (в частности, отличнейшая документация на русском), но для себя я решил сделать небольшую шпаргалку, так как некоторые вещи даже после прочтения подробного мануала были не очевидны. Для начала, немного теории.
Что такое TortoiseSVN?
Это самый популярный клиент для управления версиями при разработке ПО. Вообще, SVN, согласно Википедии, это свободная централизованная система управления версиями, официально выпущенная в 2004 году компанией CollabNet. Версии в TortoiseSVN называются ревизиями. Можно в любой момент откатиться к любой из ревизий, посмотреть кто и какие изменения сделал, кто в команде больше всего работал над какими файлами работал и так далее.
Принцип простой – есть централизованное хранилище, в него импортируется проект (папка с файлами), из хранилища выделяется рабочая копия, автор как-то с ней работает, затем делает Commit и номер ревизии увеличивается на единицу. Можно откатиться к любой ревизии из хранилища.
Устанавливается как расширение проводника, а не как отдельная программа, и выглядит следующим образом.
Что такое ревизии?
Согласно документации, ревизии это серии массивов деревьев. Наш проект растет и эти деревья тоже.
Каждое дерево – это «снимок» состояния хранилища после каждой фиксации
Как работает TortoiseSVN?
TortoiseSVN не зависит от языка, на котором вы пишите. Он просто сравнивает файлы.
Если работает один разработчик – то центральным хранилищем можно сделать любую папку на HDD или сетевом диске, нужно просто выбрать папку и выбрать в контекстном меню Create Repository Here. И у нас создастся хранилище, в которое мы сможем импортировать наши проекты. Чуть позже посмотрим на примерах. Можно конечно и сервер поднять, например VisualSVN, и центральное хранилище сделать на нём, но об этом позже. Тут от целей и задач зависит.
Если разработчиков несколько и все они разбросаны по разным уголкам планеты, то тогда, конечно, лучше использовать клиент-серверную модель. Поднять сервер, например VisualSVN, настроить хранилище на нём и тогда Commit, сделанный одним разработчиком виден другим.
Общий принцип.
Выделяем копию из хранилища. Работаем с ней, жмём Commit. Изменения сохраняются в центральном хранилище.
Модели слияния и блокировки
Модель слияния
При работе у нас появилась идея сделать какую-то фишку в проекте.
В хранилище создаем ветвь (branch) из папки trunk. Теперь у нас в хранилище 2 одинаковые копии проекта.
В рабочей копии переключаемся на файлы из branch. При этом над стволом команда тоже может работать в это время. Работаем с копиями – в копиях ствола и ветви появляются различия. Когда работа над ветвью закончена – проводим слияние. При необходимости разрешаем конфликты (когда разные разработчики меняли одну и ту же строку, когда менялась структура деревьев и так далее).
Продолжаем работать над стволом. Модель слияния позволяет работать нескольким разработчикам одновременно. Далее, мы посмотрим как технически работать с моделью слияния.
Модель блокировок
Блокируем файл или группу, с которым мы должны работать.
Никто не имеет доступа к нему, пока он не заблокирован.
После того как поработали с файлом – разблокируем его. Главное не забыть – в этом-то вся и проблема модели блокировок))) Ну и ещё одна проблема – все ждут друг друга.
Практика
Создание репозитория
Создадим на диске С:\ папку SVN, а внутри неё сделаем ещё одну папку, назовем её Repository. Теперь нажмем правой клавишей мыши на этой папке и в контекстном меню выберем Create Repository Here таким образом
Нажмём Create Folder Structure
А потом Start Repo Browser, в результате мы увидим вот такую структуру папок
branches – это ответвления, когда у нас появится какая-то идея, мы всегда можем сделать ответвление – поработать с ним, и в конце сделать слияние с trunk, и удалить ненужные файлы из branch, так как изменения уже будут закреплены.
tags – это как фотографии, нам нужно зафиксировать состояние проекта на какой-то момент, например релиз 1.0, используем это в tags.
Чуть позже увидим как со всем этим расправляться технически.
Создание папки-источника
Чтобы далеко не ходить – создадим в папке SVN – другую папку, например MyProject (Source Folder)
Теперь внутри папки MyProject (Source Folder) создадим какую-нибудь структуру, например вот так
В текстовом файле напишем, произвольный текст, например вот так…
Импорт папки-источника в репозиторий
В принципе папка-источник у нас готова, теперь импортируем её в репозиторий.
Здесь обязательно подпишите комментарий, потом, когда таких транзакций будет миллион, и мы все их будем просматривать в логе – это очень сильно пригодится. А если будет миллион безликих транзакций, то считай и потерялись. Как видите – первоначальный импорт делаем в trunk.
Здесь, смотрите, я для примера взял просто file:///C:/SVN/Repository/trunk, но в реальной жизни у нас десятки проектов, и поэтому тут можете варьировать, либо file:///C:/SVN/Repository/Project1/trunk либо file:///C:/SVN/Repository/trunk/Project1 – на вкус и цвет как говорится. В документации советуют второй вариант.
Теперь если зайдем в Repo-Browser, то увидим следующую картину
Создание рабочей копии
Создадим папку MyWorkCopy
Делаем SVN Checkout
Далее выберем директорию из которой мы будем копировать файлы
И в результате получим вот такой результат
Обратите внимание – появился маленький зеленый значок! Он означает, что на данный момент рабочая копия синхронизирована с хранилищем. Если этого значка у Вас нет, то возможно стоит залезть в реестр и поправить приоритет в ShellIconOverlayIdentifiers. Здесь проблема в том,что в Windows число этих значков ограничено и нужно, чтобы Tortoise был на первом месте – тогда всё будет работать. Если не поможет – посмотрите ещё в сети – много статей на тему решения этой проблемы.
Работа с рабочей копией
Сделаем какие-то изменения в нашем файле, в нашей рабочей копии.
Закроем файл и посмотрим на него – иконка изменилась. Это означает, что файл не синхронизирован с хранилищем.
Как сделать синхронизацию? Очень просто.
Откроется диалог – обязательно подписываем комментарий к коммиту.
В результате изменения произошли. Ревизия получила номер 3.
Теперь значок снова зеленый – значит синхронизация прошла успешно.
Просмотр журнала и управление изменениями.
Теперь, к контекстном меню Tortoise на папке MyWorkFolder жмем ShowLog
И видим следующую картину.
Просмотр изменений
Посмотрим какие изменения мы внесли по сравнению с предыдущей версией, для этого зайдем в C:\SVN\MyWorkCopy\SomeFolder и в контекстном меню выберем следующее
И увидим примерно такую картину
Когда изменений в сроке не было, она не подсвечивается цветом, то есть мы будем видеть такую картинку
Откат к предыдущим изменениям
Идем в C:\SVN, жмем правой кнопкой мыши на MyWorkCopy – жмем ShowLog
Далее выбираем ревизию и выбираем откат
Выплывет вот такое окно, в котором жмем Revert
После того как мы сделали откат – то увидим, что строки SomeChanges нет в файле SomeFile.txt И кроме того – мы сделали изменения в рабочей копии – и они не соответствую теперь хранилищу. Поэтому, чтобы закрепить эти изменения – нужно сделать Commit.
Делаем Commit изменений в хранилище – после чего получим зеленую галочку.
Просматривать лог и делать коммиты можно на разных уровнях. Можно на уровне файлов или папок – тут всё зависит от Ваших текущих задач.
Думаю данный пост завершить, так как он получился слишком длинным. В следующем посте хочу осветить правильный цикл слияния.
Мы изучили теорию – на минимальном уровне.
Мы разобрали как создать хранилище.
Мы создали рабочую копию из хранилища, сохранили изменения, посмотрели лог и откатились обратно. В принципе, это типичные действия для разработчиков.
Русские Блоги
Базовое использование и опыт Tortoise SVN
1. Установка клиента TortoiseSVN
1.2 Для регистрации введите адрес в адресной строке: http:// /svnmanager/index.php Чтобы войти в приветственный интерфейс SVNManager
Во-вторых, выберите каталог SVN
2.1 После завершения установки в соответствии с настройками по умолчанию щелкните правой кнопкой мыши две опции, выберите TortoiseSVN → Репо-браузер, чтобы открыть каталог SVN, и введите адрес SVN.
Рабочий каталог можно увидеть ниже. Все файлы проекта могут быть общими, используйте CheckOut Загрузить в текущий каталог
2.2. В зависимости от потребностей его также можно загрузить на локальный диск.
В-третьих, добавить отправку файла
3.1 Щелкните правой кнопкой мыши TortoiseSVN → добавить, чтобы добавить файлы в каталог.
3.2 Выберите SVN Commit для отправки. Все остальные это видят. После завершения отправки знак «+» на файле становится зеленой галочкой.
В-четвертых, обновленная версия
4.1 Потому что система контроля версий в основном используется командой. Следовательно, этот же файл все еще можно редактировать.
4.2. Обеспечить синхронизацию файлов в рабочем каталоге с файлами группы. Перед редактированием рекомендуется обновить.
4.3 Здесь щелкните правой кнопкой мыши значок файла или каталога, который вы хотите обновить, и выберите «Обновление SVN».
Пятерка, ретроспективная версия
5.1 Вы можете использовать функцию SVN «Обновить до ревизии», чтобы вернуться к определенной дате или версии. Щелкните правой кнопкой мыши значок файла или каталога, который вы хотите обновить. И выберите TortoiseSVN-> Обновить до версии.
5.2. Вы можете вернуться к версии Head. Конечно, вы также можете выбрать конкретную версию журнала шоу.
Шесть, заблокировать и разблокировать
6.1 Установите блокировку перед каждым изменением, чтобы другие люди не могли изменить этот файл. В противном случае, если два человека изменят один и тот же файл, это будет проблемой. Значок показывает небольшой замок после блокировки
6.2 Используйте блокировку разблокировки, чтобы разблокировать после модификации
Семь, создайте новый бренд
7.1. Создайте новый бренд в стволе, TortoiseSVN → Branch / tag
7.2 Убедитесь, что каталог в From WC по URL: является исходным каталогом для копирования.
7.3 Введите путь для копирования в поле «Кому URL». Обычно все ветки сосредоточены в одном каталоге. Файлы веток обычно сосредоточены в подкаталоге ветвей. Вам нужно только ввести требуемый каталог в To URL.
7.4 Если каталог не существует, он будет автоматически создан SVN. Обратите особое внимание на косую черту SVN как символ разделителя каталогов.
7.5 Затем введите цель этой ветви в сообщении журнала.
7.6 Чтобы восстановить запись, выберите Объединить.
Интеллектуальная рекомендация
PAT Class B 1090 Упаковка для опасных грузов
При транспортировке товаров в контейнерах нужно быть очень осторожным, чтобы не упаковать несовместимые товары в ящик. Например, окислитель не должен находиться в одной емкости с легковоспламеняющейся.
Клавиша ярлыка терминатора Ubuntu1804
Установить Рендеринг горячая клавиша Ctrl + Shift + E Вертикальное сегментационное окно Ctrl + Shift + O Горизонтальное сегментационное окно Ctrl + Shift + N Свободно переключите каждое окно сегментац.
Конфигурация резервного копирования библиотеки Postgresl под WIN окружающей среды
1. Изменение основного сервера и в режиме ожиданияИзмените разрешение подключения файла pg_hba.conf базы данных: изменился на: В это время, вы должны убедиться, что вы можете подк.
Каркас TensorFlow для машинного обучения
Компьютерная графика (семь) Кривая Безье (Bessel) и исходный код
Загрузка исходного кода:Нажмите меня, чтобы скачать «Кривая Безье» была изобретена французским математиком Пьером Безье, который заложил основы компьютерной векторной графики. Его основное.
Умный экспорт из SVN при помощи TortoiseSVN
Достаточно давно я столкнулся с проблемой, что в хорошей и правильной программе TortoiseSVN (по-русски «тортойс эС-Ви-эН»), нету такой необходимой и желанной вещи, как экспорт только тех файлов, которые были затронуты определенными ревизиями. Особенно начинаешь страдать, когда приходится перезаливать на сервер весь проект, куда входят достаточно увесистые библиотеки и фреймворки. Можно, конечно, не включать библиотеки в Subversion, но это уже тема для другой беседы.
И вот, совсем недавно, один очень хороший гуру и друг совершенно ненавязчиво рассказал мне, как изящно и красиво решить эту проблему.
Первое, что нам нужно сделать — это зайти в папку, где у нас лежит рабочая копия и вызвать там контекстное меню. На данном этапе стоит отметить, что у вас уже должна быть установлена программа TortoiseSVN, использование которой, собственно, не требует никаких сверхестественных навыков.
Так вот, в вызванном контекстном меню нужно выбрать пункт «TortoiseSVN» → «Show log«. Перед вами предстанет следующего вида окно:
В этом окне нужно произвести следующие действия: выбрать ревизию, начиная с которой нужно будет собрать измененные и добавленные файлы, зажать Ctrl, и выбрать ревизию, которой нужно закончить (в 90% случаев, это последняя ревизия). В общем, в итоге, должны быть выделены две ревизии. Теперь, вызываем контекстное меню следующего вида:
В этом самом меню выбираем пункт «Compare revisions«. Получаем список файлов, которые были затронуты ревизиями между выбранными. Выглядит это примерно так:
Не трудно догадаться, что в этом окошке мы выделяем все файлы, вызываем контекстное меню и выбираем пункт «Export selection to. «. Выбираем папку, куда сложить файлы, и жмем «OK».
Теперь обновить сайт или сделать ресурс-патч не составит никакого труда.
Надеюсь, я не единственный, кто не знал, как это делается, и эта информация окажется полезной.
К сожалению, я использую только эту программу для работы с Subversion, так что не могу описать, как это сделать в другом софте. Но, наверняка, как-то можно. Быть может umputun подскажет, как это работает в eSVN.
Работа с TortoiseSVN
Введение
В данном HOWTO будет подробно рассказано как работать с самым популярным SVN-клиентом под Windows: скачивать и обновлять репозитории, создавать теги и ветки проекта, коммитить (публиковать) свою рабочую копию, откатывать сделанные изменения и многое другое.
Где можно скачать программу
Скачать программу можно на её официальном сайте на странице Downloads: http://tortoisesvn.net/downloads. Там же можно скачать пакет локализации, содержащий помимо перевода интерфейса программы, ещё и словарь проверки орфографии (применяется при коммите изменений (см. ниже)).
Программа TortoiseSVN интегрируется в Проводник Windows (Windows Explorer) и все действия с ней выполняются из контекстного меню каталогов (папок).
Начнём с самого простого — скачивания одного из репозиториев на свой компьютер.
Скачивание репозитория SVN (Checkout)
Если Вы хотите скачать репозиторий какого-нибудь проекта, то Вы должны знать его URL, а также логин и пароль для доступа (если не указаны, то для анонимного доступа (только чтение) используется логин и пароль anonsvn). URL’ы могут быть:
Допустим, что URL нам известен, поэтому чтобы скачать репозиторий, мы должны сделать следующее:
Обновление скачанного репозитория (Update)
SVN и создавался для удобного управления проектам, а также поддержания их в актуальном состоянии, поэтому вторая по значимости операция — обновления скачанной рабочей копии. Рекомендуется как можно чаще обновлять свои рабочие копии. При обновлении скачиваются только изменённые файлы, добавляются новые и удаляются удалённые из репозитория файлы. Итак, чтобы обновить рабочую копию, нужно:
Сохранение своих изменений в репозиторий (Commit)
Если Вы хотите внести свои изменения в скачанный репозиторий и у Вас есть на это право (право коммита в репозиторий), то просто начинайте работать с локальной рабочей копией как с обычной папкой: создавайте, редактируйте, удаляйте файлы и/или папки. Теперь чтобы внести изменения в репозиторий, нужно:
Работа с репозиторием напрямую на сервере
Иногда требуется работать с svn-репозиторием напрямую на сервере не скачивая его на локальный компьютер. Для этих целей существует утилита «SVN Repo-browser«, также входящая в состав TortoiseSVN. Работать с ней очень просто:
Создание веток или меток внутри репозитория
Откат изменений в рабочей копии
Если работая с локальным репозиторием Вы совершили какую-либо ошибку, например, повредили какой-то файл, неправильно отредактировали и т.д., то это легко исправить:
Работа с утилитой Log Viewer
Утилита Log Viewer, запускаемая после нажатия на кнопку «Show log…«, либо при нажатии правой кнопкой по свободному месту в локальной рабочей копии — «TortoiseSVN» — «Show log«. По умолчанию утилита показывает последние 50 ревизий и их описаний (если во время коммита они были введены). Все основные действия выполняются из контекстного меню ревизии:
Кнопка «Show all» покажет все ревизии, а «Show range…» позволит задать диапазон ревизий, которые будут отображаться в окне Log Viewer.
Кнопка «Statistics» отображает различную статистическую информацию: наиболее активный и наименее активный автор, количество изменений в репозитории в неделю, общее количество изменений и т.д.