Аналог tortoisesvn для linux

Обновлено: 04.07.2024

Subversion имеет превосходный клиент в Windows (конечно же, Tortoise). Все, что я пробовал на Linux, просто - хорошо - отстой в сравнении.

ОТВЕТЫ

Ответ 1

Отказ от ответственности: давным-давно я был одним из разработчиков RabbitVCS (ранее известного как NautilusSvn).

Если вы используете Nautilus, вас может заинтересовать RabbitVCS (упомянутый ранее Тревор Брамбл). Это неподдельный клон TortoiseSVN для Наутилуса, написанный на Python. Хотя еще многое предстоит сделать (особенно в области производительности), некоторые люди, похоже, вполне удовлетворены этим.

Название вполне подходит для проекта, потому что история, на которую он ссылается, довольно точно изображает темпы развития (что означает длинные сонли). Если вы решили начать использовать RabbitVCS в качестве клиента управления версиями, вам, вероятно, придется заразиться руками.

Ответ 2

В общем, я просто использую командную строку для svn, это самый быстрый и простой способ сделать это, если честно, я бы порекомендовал вам попробовать.
Прежде чем вы отпустите это, вы, вероятно, должны спросить себя, есть ли какая-либо функция, для которой вам нужен графический интерфейс, и хотите ли вы открыть приложение графического интерфейса и загрузить файлы или просто ввести "svn co svn://site -goes-here.org/trunk"

Вы можете легко добавлять, удалять, перемещать, фиксировать, копировать или обновлять файлы с помощью простых команд, заданных с помощью "svn help", поэтому для большинства пользователей этого более чем достаточно.

Ответ 3

Начнем с того, что я постараюсь не казаться мерзким здесь;)

Вздох.. Почему люди не получают, что интегрированные клиенты с файловым проводником - это путь? Это намного эффективнее открытия терминалов и ввода текста. Простая математика,

два щелчка мыши по сравнению с

10 + нажатиями клавиш. Хотя, я должен указать, что мне нравится командная строка, так как я занимаюсь административной работой и предпочитаю автоматизировать все как можно быстрее и проще.

Будучи испорченным TortoiseSVN на окнах, я был поражен отсутствием чересчурного интегрального клиента, когда я перешел на ubuntu. Для чистых программистов интегрированный клиент IDE может быть достаточно, но для общего использования и для графических художников или других случайных офисных людей клиент должен быть интегрирован в стандартный файловый проводник, иначе большинство людей не будут его использовать вообще.

Некоторые думали о некоторых клиентах:

Kdesvn, Клиенту мне очень нравится это, хотя есть огромная досада по сравнению с TortoiseSVN - вам нужно войти в специальный режим макета subversion, чтобы получить оверлеи, указывающие статус файла. Поэтому я бы не назвал kdesvn интегрированным.

NautilusSVN, выглядит многообещающим, но с выпуском 0.12 у него есть проблемы с производительностью с большими репозиториями. Я работаю с репозиториями, где рабочие копии могут содержать

50 000 файлов в разы, которые TortoiseSVN обрабатывает, но NautilusSVN этого не делает. Поэтому я надеюсь, что NautilusSVN скоро получит новый оптимизированный выпуск.

RapidSVN не интегрирован, но я попробовал. Он вел себя довольно странно и разбился пару раз. Он удалился через

Я очень надеюсь, что проект NautilusSVN скоро выпустит новую версию с оптимизацией производительности.

NaughtySVN кажется, что это может показаться довольно приятным, но на данный момент ему не хватает иконок и не было выпусков на два года. поэтому я бы сказал, что NautilusSVN - наш единственный надежда.

Ответ 4

kdesvn, вероятно, лучше всего вы найдете.

В последнее время я проверил, что он может подключиться к konqueror, но это было некоторое время, я перешел к git:)

Ответ 5

Вы также можете посмотреть git-svn, который по существу является git интерфейсом для подрывной деятельности.

Ответ 6

Посмотрите мой вопрос:

Какой лучший клиент для подрывных операций для Linux?

Я также согласен с тем, что клиенты GUI в linux suck.

Я использую subeclipse в Eclipse и RapidSVN in gnome.

Ответ 7

Ответ 8

Я думаю, вы могли бы взглянуть на RabbitVCS

RabbitVCS - это набор графических инструментов, написанных для обеспечения простого и простого доступа к используемым вами системам управления версиями. В настоящее время он интегрирован в файловый менеджер Nautilus и поддерживает только Subversion, но наша цель - включить другие системы управления версиями, а также другие файловые менеджеры. RabbitVCS вдохновлен TortoiseSVN и другими.

Я собираюсь попробовать. кажется многообещающим.

Ответ 9

Для Ubuntu вы можете использовать KDESVN, объединенный с Nautilus, с пятью Чувством SVN Tortoise.

Ответ 10

Никто еще не упомянул об этом, и я продолжаю забывать имя, поэтому я добавляю эти инструкции здесь для своего будущего себя в следующий раз, когда я его пойду.

В настоящее время pagavcs кажется лучшим .

вам нужен один из этих файлов .deb

(1.4.33 - это то, что я установил прямо сейчас, поэтому попробуйте это, если последние вызовут проблемы)

установите, затем запустите

чтобы выключить nautilus, затем снова открыть nautilus, и вам должно быть хорошо идти без необходимости выхода из системы/завершения работы

К сожалению, кролик просто дросселирует на больших репозиториях для меня, поэтому непригодным для использования, paga не замедляет просмотр, но также, похоже, не пытается обратиться в справочники, чтобы узнать, изменилось ли что-либо.

Ответ 11

Nautilus предоставляет контекстное меню для действий svn

Для получения дополнительной информации

Ответ 12

Я очень доволен kdesvn - очень хорошо интегрируется с konqueror, так же как trortousesvn с Windows Explorer, и поддерживает большую часть функциональности черепахового.

Конечно, вы выиграете от этой интеграции, если используете kubunto, а не ubuntu.

Ответ 13

Взгляните на SVN Work Bench, он приличный, но не идеальный

Ответ 14

Я иногда использую kdesvn для работы непосредственно с репозиторием.

Я часто использую Subclipse при работе над проектами через Eclipse.

Но больше всего я пользуюсь хорошим CLI. С некоторыми псевдонимами и bash скриптами для его резервного копирования это действительно самый сжатый и надежный способ использования svn.

Я пробовал NautilusSVN (никакого отношения к NaughtySVN) и svn-workbench, и обнаружили, что они слишком проблематичны или не имеют функциональности. Я знаю, что в какой-то момент я попробовал RapidSVN, но меня не впечатлило, поскольку оно было быстро удалено, но я ничего не помню об этом.

Ответ 15

Если вы используете его, NetBeans имеет превосходное управление версиями, с несколькими клиентами, кроме SVN.

Я бы рекомендовал, однако, что вы узнаете, как использовать SVN из командной строки. CLI - это дух Linux:)

Ответ 16

Если TortoiseSVN действительно укоренился, вы можете попробовать использовать его через WINE? Хотя я этого не пробовал.

В противном случае я нашел Eclipse с Subversive довольно хорошим.

Ответ 17

Если вы используете eclipse, subclipse - лучшее, что я когда-либо использовал. На мой взгляд, это должно существовать как автономное. Простота использования, связанная с кодом и проектом, который у вас есть в eclipse. Просто отлично подходит для разработчика, который использует eclipse и хочет gui.

Лично я предпочитаю клиент командной строки, как для linux, так и для окон.

Изменить:, если вы используете XFCE и его файловый менеджер (называемый Thunar), есть плагин, который работает достаточно хорошо. Если я не хочу открывать терминал, я просто использую его, он обладает всеми функциональными возможностями, является быстрым и простым в использовании. Там также включен один для git, хотя.

Ответ 18

Как разработчик, я использую eclipse + sub-eclipse client (Предполагая, что вы используете svn для проверки какого-то проекта разработки, и вы их скомпилируете).

большинство людей не тратят много времени на работу svn, а командная строка - самый быстрый способ сделать это.

есть также некоторые полезные инструменты графического интерфейса:

Ответ 19

Поскольку вы используете Ubuntu, а не Kubuntu, я предполагаю, что вы используете GNOME. Вы можете быть заинтересованы в Nutilus Subversion Integration, описанном в этой ссылке.

У Subversion есть превосходный клиент на Windows (черепаха, конечно). Все, что я пробовал на Linux, просто-ну - отстой в сравнении .

Отказ от ответственности: давным-давно я был одним из разработчиков RabbitVCS (ранее известный как NautilusSvn).

Если вы используете Nautilus, то вас может заинтересовать RabbitVCS (упомянутый ранее Trevor Bramble). Это настоящий клон TortoiseSVN для Nautilus, написанный на Python. Хотя многое еще предстоит сделать (особенно в области производительности), некоторые люди, похоже, вполне удовлетворены этим.

Название вполне подходит для проекта, потому что история, на которую оно ссылается, довольно точно отображает темп развития (имеется в виду длительный сон). Если вы решите начать использовать RabbitVCS в качестве клиента управления версиями, вам, вероятно, придется испачкать руки.

я попробовал это, и я влюблен . спасибо за развитие этого: D RabbitVCS выглядит очень красиво! Почти позор, что я перестал использовать SVN в пользу Mercurial: D Действительно очень хороший клиент. Я установил это вчера, и я не мог быть счастливее. Ух ты - работает потрясающе на Ubuntu 10.4 - спасибо за совет.

Вы можете легко добавлять, удалять, перемещать, фиксировать, копировать или обновлять файлы с помощью простых команд, предоставляемых с помощью «svn help», поэтому для большинства пользователей этого более чем достаточно.

Инструмент командной строки не так хорош, если вы хотите работать в GNOME, не касаясь оболочки. Почему вы хотите работать без прикосновения к оболочке (или почему вы думаете, что таким образом можете быть в два раза менее продуктивным) - загадка. Графический интерфейс хорош, когда вам нужно фиксировать файлы выборочно, для всего остального достаточно хорошего терминала. Все проблемы, которые у меня были с CLI, были связаны с тем, что я не понимал, что на самом деле происходит -1, вопрос не «Должен ли я использовать CLI для SVN?», А «Кто-нибудь может порекомендовать TortoiseSVN-подобный клиент для Linux?». Я считаю, что для слияния очень помогает графический клиент с быстрым визуальным различием при нажатии на файлы!

Начну с того, что постараюсь не показаться здесь фламандской;)

Вздох .. Почему люди не получают, что интегрированные клиенты проводника файлов - способ пойти? Это намного эффективнее, чем открывать терминалы и печатать. Простая математика,

два щелчка мыши против

10 + нажатий клавиш. Тем не менее, я должен отметить, что я люблю командную строку, так как я выполняю много административной работы и предпочитаю автоматизировать все как можно быстрее и проще.

Будучи испорченным TortoiseSVN на Windows, я был поражен отсутствием интегрированного клиента, похожего на tortoisesvn, когда я перешел на Ubuntu. Для чистых программистов может быть достаточно интегрированного клиента IDE, но для общего назначения и, например, для художников-графиков или других случайных офисных сотрудников, клиент должен быть интегрирован в стандартный файловый менеджер, иначе большинство людей вообще не будут его использовать. ,

Некоторые мысли о некоторых клиентах:

kdesvn, клиент мне нравится больше всего на данный момент, хотя есть одно огромное раздражение по сравнению с TortoiseSVN - вы должны войти в специальный режим макета Subversion, чтобы получить оверлеи, указывающие состояние файла. При этом я бы не назвал kdesvn интегрированным.

NautilusSVN выглядит многообещающе, но с версии 0.12 у него проблемы с производительностью в больших репозиториях. Я работаю с репозиториями, где рабочие копии могут содержать

50 000 файлов за раз, что TortoiseSVN обрабатывает, а NautilusSVN - нет. Поэтому я надеюсь, что NautilusSVN скоро получит новый оптимизированный релиз.

RapidSVN не интегрирован, но я попробовал. Он вел себя довольно странно и пару раз падал. Он был удален через

Я действительно надеюсь, что проект NautilusSVN скоро выпустит новый оптимизированный по производительности релиз.

NaughtySVN выглядит так, как будто он может выглядеть довольно неплохо, но на данный момент в нем отсутствуют пометки значков, и у него не было релиза в течение двух лет . поэтому я бы сказал, что NautilusSVN - наша единственная надежда.

Какова лучшая программа интерфейса SVN GUI для Linux?

Я новичок в Linux из-за того, что я Windows. Для Windows я использую Tortoise SVN и мне нужно знать, какая версия Linux.

Это может быть не совсем то, к чему вы привыкли, но интерфейс командной строки действительно стоит изучить. Это не очень сложно, и этот процесс может даже помочь вам лучше понять, что делает SVN. Это действительно быстро, и понимание того, как это работает, делает интеграцию в ваш процесс сборки или другие скрипты проще простого.

Если вы предпочитаете графический интерфейс, то обычно вы можете использовать интеграцию с вашей IDE (Subclipse) или RapidSVN, хотя у меня нет особого опыта работы с ними.

RabbitVCS является клоном TortoiseSVN. Мне это нравится, потому что он очень хорошо интегрируется в файловый навигатор (Nautilus), как TortoiseSVN в Explorer.

альтернативный текст

На веб-сайте SVN в разделе "Получить Subversion" есть список сторонних клиентов. Если вы хотите использовать Eclipse, там есть пара плагинов, и есть RapidSVN для Linux. И это еще не все.

Мне очень нравится Tortoise SVN, и я хотел бы иметь что-то подобное для Linux. Тем временем я попробовал довольно много Linux SVN-клиентов, и единственным, у кого, казалось, был самый полный набор функциональных возможностей SVN в используемом пакете, был Kdesvn.

У него есть бесплатные и платные версии, но бесплатная версия должна покрывать 90% ваших потребностей. Он также имеет преимущество в том, что он кроссплатформенный (Java), поэтому, если он вам достаточно нравится, вы можете использовать его и в Windows.

Я согласен с jtb, что хотя бы некоторое знакомство с версией командной строки выгодно (опять же, это то, что я использую в Linux).

Я немного разочаровался в TortoiseSVN, так как кажется, что последняя версия (1.6.3) имеет какой-то конфликт с антивирусом ESET/NOD32, который поразил ноутбук коллеги (дважды).

На самом деле, я разочаровался в любом программном обеспечении, которое слишком глубоко подключается к Windows Explorer - слишком легко, чтобы ошибки вызывали серьезные проблемы в вашей системе.


Subversion (сокращенно SVN) — система управления версиями (Version Control System, VCS). Обычно тулзы этого рода считаются теми, кто с ними не знаком, чем-то нужным только большим командам программистов. Но на самом деле, они крайне полезны даже одиночке, и даже не программисту — всем, кому приходится редактировать какие-либо файлы. Так, я встречал весьма восторженное описание системы CVS (идейный предшественник SVN и первая свободная VCS — благодаря чему она до сих пор достаточно распространена) от какого-то то ли журналиста, то ли писателя, ее использовавшего.

  • VCS хранит всю историю изменений файлов, за которыми следит — всегда можно просмотреть историю файла, различия между двумя его версиями или откатиться после неудачных изменений.
  • VCS хранит файлы эффективно — хранятся только изменения файлов, благодаря чему репозиторий с сотней версий некоторого проекта может весить меньше, чем сам проект.
  • VCS облегчает создание резервных копий. Репозиторий легко сбэкапить, не заботясь о том, а не затрется ли какая-нибудь старая версия, которая в будущем может пригодиться — он всегда хранит всю историю. Кроме того, репозиторий — сам по себе бэкап, если он хранится отдельно от рабочей копии проекта.
  • Онлайн-репозиторий облегчает публикацию исходных кодов (и не только их), кроме того, всегда можно скачать из него самую свежую версию, либо любую из предшествующих. К тому же, при обновлении уже скачанной копии по сети передаются только изменения, резко сокращая расход трафика (и времени на передачу данных).
  • Онлайн-репозиторий — удобное средство синхронизации нескольких рабочих копий. Можно, например, подредактировать что-то на работе, зафиксировать изменения и придя домой — синхронизироваться с репозиторием и продолжить работу. VCS гарантирует, что ни одно изменение при переносе не будет забыто, а если обновляемый файл содержит какие-то незафиксированные изменения — предупредит об этом, предотвратив их потерю.

Почему SVN?

  • SVN прост. Минимальный мануал, который я писал, занимал менее странички текста, и его хватало для вкуривания в SVN в условиях командной работы.
  • SVN — свободное ПО. Хотя нынче этим свойством из заслуживающего внимания не обладает разве что P4 и VSS.
  • SVN широко распространен.
  • SVN лишен большинства недостатков CVS.

Что такое SVN?

Subversion — централизованная система управления версиями — то есть, она хранит файлы и их историю в центральном хранилище, называемом репозиторий. Subversion ориентирована на работу с файлами — она следит за изменениями файлов, отданных под ее контроль, и сохраняет их. Также, в отличие от CVS, SVN следит и за папками. Подробней об отличиях (и вообще о системе) можно почитать тут, раздел «Subversion и CVS».

Основные понятия

  • Репозиторий (Repository) — центральный архив, хранящий файлы и их историю.
  • Рабочая копия (Working Copy, WC, РК) — копия содержимого репозитория определенной версии, с которой и производится работа. Это обычная папка (не считая скрытого каталога .svn, содержащего необходимую для работы системы информацию — его трогать не следует), с которой можно работать как с обычной папкой. Но — SVN следит за изменениями файлов в ней и всегда можно посмотреть сделанные изменения, откатить их или зафиксировать в репозитории, а также обновить до любой версии, содержащейся в репозитории.
  • Извлечение (Checkout) — процедура извлечения из хранилища файлов указанной версии и создания рабочей копии из них.
  • Фиксация (Commit) — процедура сохранения в репозитории очередной версии файлов. SVN не хранит все изменения подконтрольных ей файлов — это не нужно, да и накладно. Она хранит только те версии, которые были зафиксированы.
  • Обновление (Update) — процедура синхронизации рабочей копии с репозиторием — получение из него всех обновлений файлов с момента предыдущего обновления. Также, возможно обновление до указанной версии (в том числе и более старой) — в этом случае рабочая копия будет приведена в соответствие с содержимым репозитория указанной версии.
  • Ревизия (Revision) — версия файлов. Каждая фиксация создает новую ревизию. Ревизия идентифицируется числом — ее порядковым номером. Самая свежая ревизия называется HEAD.
  • Базовая версия — версия файла, полученная из репозитория при последнем извлечении или обновлении, либо успешно отправленная туда при фиксации. Именно относительно нее пользователем и делаются изменения.
  • Конфликт (Conflict) — то, из-за чего все и затевалось. Ситуация, когда один и тот же файл изменили два человека и теперь, прежде чем его сохранить в репозитории, необходимо объединить внесенные ими изменения. Стоит отметить, конфликты часто игнорируются даже, казалось бы, вполне серьезными пользователями, а зря. Бездумное разрешение конфликта — отличный способ грохнуть работу другого.

И как с этим работать?

  1. Прежде всего, следует извлечь рабочую копию — иначе с чем же работать? Репозиторий в лучшем случае содержит непонятно что, а то и вовсе где-то там. На гуглекоде например. Делается это командой checkout, которая требует указания URL репозитория и опционально — ревизии. По умолчанию вытягивает самую свежую версию. Кроме того, можно вытянуть не весь репозиторий, а только какую-либо папку в нем.
  2. Теперь можно работать с ней как с обычной папкой с файлами. Единственное исключение — удаление, копирование и переименование (оно же перемещение) следует делать средствами SVN (команды delete, copy, move) — иначе она проигнорирует эти изменения и откатит их при первом же обновлении. Также, SVN не будет следить за новым файлами, пока они не будут явно добавлены под ее контроль командой add.
  3. (Опционально) Обновить копию, чтобы получить обновления из репозитория и проверить наличие конфликтов. Можно делать в любой момент по необходимости, для одиночки это вообще нужно только когда надо синхронизировать несколько рабочих копий. Если возникли конфликты — их необходимо разрешить.
  4. Сделанные изменения (доведенные до некоторой логической точки) следует зафиксировать в репозитории. В случае неразрешенных конфликтов — SVN фиксировать откажется. Если конфликт обнаружится в процессе фиксации — вся фиксация отменяется, в этом случае нужно обновить копию и разрешить конфликты. Фиксация атомарна, она или применяется вся, или не применяется вообще. Также она не влияет на параллельно идущие процессы обновления — выполняющие их пользователи получат ту версию, которую начали получать.
  5. Вернуться к пункту 2. Либо, если работа с проектом завершена — удалить РК как обычную папку.
  • Посмотреть текущие изменения по сравнению с базовой версией — status, diff.
  • Сравнить две ревизии файла — diff.
  • Откатить изменения в любом из файлов — revert.
  • Посмотреть историю ревизий файла или проекта — log.

Также стоит учитывать, что однажды залитое в репозиторий останется там навсегда — даже если удалить следующей ревизией, оно останется в той ревизии, в которой попало. Поэтому постарайтесь не заливать случайно файл с паролями или просто ненужный здоровый файл, который навсегда раздует репозиторий своим весом.
Точнее, один метод есть — нужно сдампить репозиторий, профильтровать дамп, удалив из него вредный файл, грохнуть старый репозиторий и создать новый, залив в него профильтрованный дамп. Но это не только сложно, но и требует административного доступа к репозиторию (а точнее — к папке с ним).

Разрешение конфликтов

Если над проектом работает более одного человека — будут неизбежно возникать конфликты. Допустим, есть два пользователя — Гарри и Салли (да, я сперва заглянул в SVN Book, но картинки оттуда тянуть лень). Они работают с одним и тем же файлом А.

Экспорт

Часто бывает нужно получить чистую копию проекта — без папок .svn, например, для публикации архива исходников. Можно скопировать рабочую копию и удалить папки .svn… Правда, они есть и во всех вложенных папках тоже… Когда-то я даже написал утилитку для рекурсивного удаления папки .svn. Но лучше использовать команду export. Она позволяет экспортировать чистую копию как из рабочей, так и непосредственно из репозитория.

Ветви

SVN поддерживает идеологию ветвей — когда независимо от основной линии развития проекта разрабатываются побочные, при этом изменения могут копироваться между ветвями. Правда, поклонники Git утверждают, что поддержка ветвей в SVN говно и недостойна таковой называться. Возможно и правы, Git и правда выглядит очень любопытно и обеспечивает контроль над туевой хучей ветвей ядра Linux (для которого и был создан Торвальдсом).
С ветвями я не работал, поэтому рекомендую почитать на эту тему SVN Book.

Создание репозитория

Чтобы работать с репозиторием, нужен, как ни странно, сам репозиторий. Хорошо, когда подключаешься к существующему проекту — он уже есть. А если проект начинаешь сам? Тогда его необходимо создать. И тут есть два варианта — локальный и удаленный репозитории.

Создание локального репозитория

Прежде всего — надо создать папку под репозиторий. Затем — создать в ней репозиторий командой create (точнее, в случае официального клиента — svnsdmin create). При этом нужно выбрать тип репозиторий — FSFS или BDB. Не буду вдаваться в подробности, но лучше создать FSFS (а свежие версии так и делают по дефолту). Кроме того, BDB репозиторий нельзя создавать на нелокальной файловой системе (например, на подмонтированном сетевом ресурсе) — через некоторое время он просто сломается.
URL для созданного локально репозитория — file:///path/to/repository, например, если репозиторий в папке C:\MyRepository, то его URL — file:///C:/MyRepository.
С локальным репозиторием клиент SVN работает непосредственно — сервер не требуется. Для обслуживания репозитория (как локального, так и выведенного в сеть сервером) предназначена утилита svnadmin.

Свежесозданный репозиторий пуст, имеет нулевую ревизию и непригоден для работы. В него необходимо импортировать начальную версию. Для этого надо создать папку с некоторым начальным содержимым и импортировать ее командой import. После этого можно извлекать рабочую копию и работать с ней, а импортированную папку удалить.

Немного о содержимом этой папки. Вообще, хранить файлы в репозитории можно как угодно, но есть рекомендованный стандарт. Согласно ему в репозитории при импорте создаются пустые папки trunk, branches и tags. Если планируется хранить в репозитории несколько проектов — то для каждого создается папка, а уже в этих папках — папки trunk, branches и tags.

  • trunk — ствол, здесь собственно и хранятся файлы проекта, с которыми ведется работа.
  • branches — ветви, сюда (в свою подпапку для каждой ветви) делаются копии ствола (или других ветвей), с которыми потом можно работать независимо от ствола, а по окончании работы — слить со стволом. В SVN копирование очень дешевая операция — по сути просто запись «сюда сделана копия таких-то файлов такой-то ревизии» в репозитории, поэтому и ветки, и метки на ней сделаны.
  • tags — метки, копии ревизий, соответствующих релизам проекта. В отличие от других VCS, в SVN метки можно модифицировать далее, как обычные ветви. Обычно это считается недостатком, но в принципе, может использоваться для поддержки старых версий проекта (например, текущая версия — 3.1, но некоторые клиенты не хотят переходить на нее с 2.3 и требуют багфиксов к ней — эта работа может производиться в метке /tags/2.3, не затрагивая текущую версию).
Удаленный репозиторий

Удаленный репозиторий может быть в локальной сети и в интернете.
В первом случае (а также во втором, когда репозиторий на своем хостинге) на хосте репозитория следует поднять и настроить SVN сервер — родной svnserve (говорят, крайне дыряв) или на основе apache+webdav или иной SVN-плагин. Но это тема не этой статьи, да и не знаком я с ней.
Но есть еще один вариант — это SVN-хостинги. Их немало, как платных, так и бесплатных. Они предоставляют уже готовый репозиторий, а если и нет — то сами расскажут, как его создать. Лично я пользуюсь хостингом от гугла. Остальных — доставит он же :)
Репозиторий в интернете позволяет синхронизировать свои рабочие копии на разных компах, а также работать над проектом вместе с другими людьми, возможно на другом конце мира. А также, при желании — предоставлять всем желающим доступ (на чтение) к самой свежей версии исходников.

Круто. А где взять?

На официальном сайте, теперь под крылышком у Apache. Однако, официальный клиент — это кроссплатформенная консольная программа. Не всем они нравятся, хотя свои плюсы у них есть. Поэтому существуют альтернативные клиенты и оболочки на официальный консольный клиент.


Лично мне нравится TortoiseSVN — это GUI-клиент (т.е. в отличие от оболочки он выполняет действия сам, а не передает их консольной программе svn), выполненный как расширение Проводника Windows. Вся работа с ним производится через контекстное меню Проводника. Также совместимо с Total Commander и ему подобными файл-менеджерами (теми, которые запрашивают иконки файлов у винды и умеют показывать контекстное меню Проводника). Поклонникам FAR'а и других операционок могу порекомендовать только гугл. Также TortoiseSVN показывает состояние файлов, накладывая оверлеи на их иконки. Благодаря этому с первого взгляда видно состояние рабочей копии — модифицированные файлы, конфликты и так далее.
Стоит также обратить внимание на то, что TortoiseSVN добавляет свои пункты в контекстное меню, показываемое при перетаскивании файлов/папок правой кнопкой мыши. Там такие полезные команды, как Export, Copy, Move.
Алсо, в разделе языковых пакетов к TortoiseSVN имеется годный мануал в PDF, на русском. Рекомендую почитать, это своеобразный аналог SVN Book для TortoiseSVN.

Настройки TortoiseSVN

Настройки вызываются через контекстное меню проводника, вызванное на любом объекте, пункт TortoiseSVN->Settings. Их там довольно много, опишу основные.


Здесь следует настроить Global ignore pattern — список масок файлов, которые SVN будет игнорировать — т.е. не предлагать их добавить, зафиксировать и т.д. Сюда следует внести различные временные файлы — на скриншоте, например, внесены файлы, создаваемые Delphi версий по 7-ю. Здесь же можно поменять язык, русский поддерживается — но не гарантирую совпадение терминологии, т.к. пользуюсь английской версией.


Здесь внимания заслуживает Status cache. Выбранный вариант обеспечивает рекурсивную проверку статуса — папка будет помечена как модифицированная даже если модифицированный файл в одной из ее подпапок.
При снятой галочке «Show overlays and context menu only in explorer» можно использовать TSVN из менеджеров вроде Total Commander.
Галочки Show overlay for позволяют отключить назойливые метки на файлах, не находящихся под присмотром SVN.
Галочки в поле Drive Types позволяют отвадить SVN от проверки на модификации медленные носители и флешки (последнее — чтобы оно не мешало их извлекать), а также от заданных дисков.

На вкладке Network можно настроить доступ к сети и выбрать клиент для SSH, но у меня там значения по умолчанию (разве что, ЕМНИП, я вручную указал использовать прилагающийся к TortoiseSVN TortoisePLink.exe как клиент SSH).

На вкладке Saved data можно почистить истории и сохраненные данные аутентификации.

На вкладке Hook scripts можно добавить программы, срабатывающие при определенных событиях. У меня там, например, внесен скрипт, срабатывающий после обновления одной из РК.

На остальных вкладках (кроме рассмотренных далее) преимущественно настройки вида и поведения. Можно настроить их на свой вкус или удовлетвориться дефолтными.

Свистелки и перделки

На TortoiseSVN можно навешать некоторое количество дополнений, расширяющих возможности. Итак, по порядку.

Внешние Diff/Merge

Хотя к TortoiseSVN прилагается родная программа TortoiseMerge, мне больше нравятся WinMerge для сравнения файлов (он подсвечивает изменения внутри строк, позволяет редактировать файл прямо в нем и умеет подсвечивать синтаксис для многих языков, но не умеет сравнивать три файла) и KDiff3 (удобная программа для сравнения и слияния трех файлов, изначально созданная под KDE). Кроме них интерес могут представлять Beyond Compare, Structured Difference Viewer, утилиты Diff/Merge из состава Perforce и Borland StarTeam (или как его там, не помню уже) — но из них бесплатны только две последние.

Настраиваются эти утилиты в разделе External Programs, в прилагаемом хелпе есть командные строки для многих распространенных программ. В моем случае это
для обоих вариантов на вкладке Diff и
для вкладки Merge.

Интеграция с багтрекерами

Осуществляется плагинами, список их можно найти на сайте TortoiseSVN. После установки плагина его можно подключить к соответствующей РК на вкладке Hook Scripts->Issue Tracker Integration.

CommitMonitor

Пара глазок, которые сидят в трее и периодически проверяют указанные репозитории на наличие обновлений. Иногда полезно. Обитает вместе с другими полезняшками в разделе Other Tools сайта TortoiseSVN.

Читайте также: