Небольшая автоматизация работы с 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:
    "c:\Program Files\TortoiseSVN\bin\TortoiseProc.exe" /command:commit /url:"http://xxx.xxx.xxx" /path:"d:\WebServers\home\silentroach\www" /notempfile

    update.cmd:
    "c:\Program Files\TortoiseSVN\bin\TortoiseProc.exe" /command:update /url:"http://xxx.xxx.xxx" /path:"d:\WebServers\home\silentroach\www" /notempfile

    log.cmd:
    "c:\Program Files\TortoiseSVN\bin\TortoiseProc.exe" /command:log /url:"http://xxx.xxx.xxx" /path:"d:\WebServers\home\silentroach\www" /notempfile


    По остальным командам можно поглядеть справку, там под это отведен раздел.

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

    Получилось довольно симпатично:



    Кросспост из личного блога.
    Поделиться публикацией

    Комментарии 15

      +2
      А чем не угодили svn checkin, svn update и т.д.?
        0
        Не понял вопроса, расшифруйте, пожалуйста.
          0
          если Вы про пункты меню в Проводнике, то читайте об этом в первых двух абзацах.
          если про контекстное меню в Total Commander, то чуть ниже.
            +1
            Я про консольные команды. TortoiseSVN пользовался недолго. Возможно что-то не понимаю, но обьясните, чем результат выполнения консольной команды
            svn update
            из папки d:\WebServers\home\silentroach\www отличается от
            "c:\Program Files\TortoiseSVN\bin\TortoiseProc.exe" /command:update /url:"http://xxx.xxx.xxx" /path:"d:\WebServers\home\silentroach\www"
              0
              тем, что для выполнения "svn update" нужно ставить себе Subversion.
              да и я больше поклонник GUI, нежели консоли.
                0
                > тем, что для выполнения "svn update" нужно ставить себе Subversion.
                Всю жизнь считал, что TortoiseSVN - не svn клиент, а shell-морда для svn. т.е. если есть TortoiseSVN, то есть и Subversion. Неужели ошибался?

                > да и я больше поклонник GUI, нежели консоли.
                Можно команды svn так же положить в скрипты. Тогда Subversion можно поставить _вместо_ TortoiseSVN.

                Впрочем, Зачем что-то менять если и так работает? :)
                  0
                  можно и положить команды в скрипты, но такого GUI, как в TortoiseSVN из этого не получится. там это дело очень удобно сделано.
                0
                Тем, что TortoiseSVN не предоставляет такие команды, по крайней мере при обычной установке. Другое дело, что ничто наверное не мешает поставить svn и пользоваться им.
            0
            Респект за то, что автор не сдался и нашел таки выход. :)
            Рискну нарваться на критику и предложу всеже попробовать сменить файловый менеджер на какойнибудь, основаный на эксплорере. Я юзаю Directory Opus. IMHO лучшей альтернативы нет.
              +1
              С таким же успехом я могу предложить использовать командную строку вместо TC. В большинстве случаев дело не в том, что что-то лучше, а в том, к чему человек привык. Не стоит менять привычки ради сомнительной выгоды. Navigational vs Orthodox File Manager - как раз такой случай. Другое дело текстовые редакторы vim vs notepad. Здесь от изменения привычек буде реальная выгода.
              0
              Была такая же проблема на x64, вылечилась установкой 32-битного TortoiseSVN. Теперь он не работает в explorer'e (не больно и хотелось), зато прекрасно ведет себя в TotalCommander. Видимо, дело в 32-битности самого Commander'a.
                0
                вот такой вариант я как-то даже и не пробовал
                впрочем, тот вариант, что получился у меня, уже нравится мне больше =)
                  0
                  Можно установить обе версии (32 и 64), тогда работать будет везде.
                  0
                  а зацените, что про последнюю черепашку версии 1.5.0 пишут вот тут:

                  Note for x64 users: you can install both the 32 and 64-bit version side by side. This will enable the TortoiseSVN features also for 32-bit applications.


                  что в переводе на русский язык означает — можно инсталить одновременно и 32-битную и 64-битную версии, и будет всё работать как надо… проверил, кстати, — работает, у меня такая же связка как у вас — Windows Vista Ultimate 64 и Total Commander ;-)
                    0
                    Не совсем понял — в чем собственно проблема с Total Commander? Или у вас при клике правой кнопкой файлы выделяются а не контекстное меню вызывается? Так это можно исправить в настройках. По поводу x64 — у меня было единственное неудобство в том, что пункты меню TortoiseSVN в тотале были спрятаны в подменю x64. Поставил 32-битную версию черепашки — все работает на ура.

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

                    Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

                    Самое читаемое