Если оставить для другого треда споры о необходимости интеграции SVN в IDE и посмотреть на сегодняшнее положение дел, то вот что мы имеем:
AnkhSVN — единственный относительно стабильный продукт, и единственный не реализующий MSSCC API. Всё ещё находится в бета статусе, о комфортной работе речи нет. Диалоги и юзабельные, pending checkins не работает, тормозит при загрузке. PushOk SVN Proxy — платный, да и не работает. Subway — мёртвый. SVNScc — мёртвый. chmsubscc — не работает. sourcecross — мёртвый, хотя и есть невнятные попытки возродиться. TortoiseSVNSCC — не работает.
Это результаты беглого просмотра на простом Windows .NET проекте в VS2003 и VS2005. На объёмном проекте и при более продолжительной работе, скорее всего, выявятся дополнительные проблемы.
А что хотелось бы иметь? Стабильную реализацию провайдера MSSCC API, предоставляющую в полном объёме функциональность последней версии Subversion. По крайней мере:
статус текущей версии
историю изменений файла, папки
диф выбранных версий
автоматическая блокировка нетекстовых файлов
разрешение конфликтов
переименование и перемещение файлов
выполнение команд удалённо, в репозитарии
удобная работа с клавиатуры
принятие русского текста
И всё это не выходя из IDE. В этом списке даже нет ветвления, переключения между ветками и атрибутов.
Вообще, печально наблюдать отсутствие открытого стандарта на API к VCS. Мне кажется, при наличии такового мы бы сейчас имели более широкий выбор.
Вывод: на сегодняшний день, AnkhSVN — единственный продукт, который можно считать рабочим, но не реализуя MSSCC API, вряд ли ему суждено стать массовым.
Да, возможность интеграции в данном случае рассматривалась для платформы Windows и IDE: VS6, VB6, VS2003, VS2005, PowerBuilder и тому подобное, поддерживающее MSSCC API.
Здравствуйте, fuurin, Вы писали:
AVK>>SCC рассчитан на модель VSS. SVN мягко говоря под нее не подходит. Так что толку от поддержки SCC API для SVN 0.
F>Какие из перечисленных выше функций не могут быть реализованы через SCC API?
статус текущей версии
Набор статусов VSS и SVN практически не пересекается, а SCC заточено именно под первый.
историю изменений файла, папки
Имеет довольно слабое отношение к SCC.
диф выбранных версий
Имеет довольно слабое отношение к SCC.
автоматическая блокировка нетекстовых файлов
В SCC поддержки такого нет. Да и не нужно это SVN.
разрешение конфликтов
Имеет довольно слабое отношение к SCC.
переименование и перемещение файлов
Ну вот единственное где SCC для SVN мог бы быть полезен. Но AnkhSVN вроде бы это обеспечивает, хоть и не через SCC (через внутренние интерфейсы поддержки SCC студии).
выполнение команд удалённо, в репозитарии
Вобще не имеет отношения к SCC.
удобная работа с клавиатуры
С чем?
принятие русского текста
Вобще не имеет отношения к SCC.
F> Или речь о чём-то другом? Что такое "модель VSS" в таком случае?
Модель обрабатываемых данных и поведения пользователя. В случае SVN и VSS отличается очень сильно. Например основное, что упрощает SCC — автоматический чекаут файлов. В SVN аналогичная операция просто отсутствует.
... << RSDN@Home 1.2.0 alpha rev. 644 on Windows XP 5.1.2600.131072>>
Здравствуйте, AndrewVK, Вы писали:
AVK>Ну вот единственное где SCC для SVN мог бы быть полезен. Но AnkhSVN вроде бы это обеспечивает, хоть и не через SCC (через внутренние интерфейсы поддержки SCC студии).
Кстати, ты не пробовал использовать AnkhSVN вместе с Решарпером? Год назад, когда я смотрел AnkhSVN, то переименование делалось только через дополнительную команду в контекстном меню. Авторы это объясняли тем, что от Студии не приходит необходимых событий.
Соответственно, вопрос в том, если я Решарпером переименую класс, то увидит ли это изменение AnkhSVN?
Re[5]: Интеграция Subversion в IDE: день сегодняшний
Здравствуйте, Mab, Вы писали:
Mab>Кстати, ты не пробовал использовать AnkhSVN вместе с Решарпером?
Я его один раз поставил, студия зависла на сборке С++ного проекта и я его снес. С тех пор больше не ставил.
Mab> Год назад, когда я смотрел AnkhSVN, то переименование делалось только через дополнительную команду в контекстном меню. Авторы это объясняли тем, что от Студии не приходит необходимых событий.
Гонят. IVsTrackProjectDocumentsEvents.OnAfterRenameFiles
Mab>Соответственно, вопрос в том, если я Решарпером переименую класс, то увидит ли это изменение AnkhSVN?
А зачем это ему? VCS не классы волнуют, а файлы. Переименование файла должен увидеть.
... << RSDN@Home 1.2.0 alpha rev. 644 on Windows XP 5.1.2600.131072>>
Здравствуйте, AndrewVK, Вы писали:
AVK>Я его один раз поставил, студия зависла на сборке С++ного проекта и я его снес. С тех пор больше не ставил.
Понятно
AVK>Гонят. IVsTrackProjectDocumentsEvents.OnAfterRenameFiles
В том-то и проблема, что OnAfterRenameFiles. А при работе с svn нужно ловить Before. Либо после After возвращать файл назад и делать svn mv. Второй вариант авторам плагина не понравился, поэтому они решили, что пользователей надо приучать переименовывать с помощью их собственной мегакоманды. По крайней мере, такое у меня осталось впечатление от чтения FAQ.
AVK>А зачем это ему? VCS не классы волнуют, а файлы. Переименование файла должен увидеть.
Решарпер при переименовании классов переименовыывает файлы, используя стандартное API студии. AnkhSVN события от этого API не использует (не использовал?). Отсюда и вопрос.
Re[4]: Интеграция Subversion в IDE: день сегодняшний
F>>статус текущей версии AVK>Набор статусов VSS и SVN практически не пересекается, а SCC заточено именно под первый.
По моему, такой список статусов вполне достаточен для работы из IDE:
без изменений
новый
удалённый
изменённый
конфликт
вне контроля версий
взят в единоличное владение
заблокирован другим пользователем
Из этого списка только "конфликт" под вопросом поддержки его в SCC API.
F>>историю изменений файла, папки F>>диф выбранных версий F>>разрешение конфликтов AVK>Имеет довольно слабое отношение к SCC.
Операция или предусмотрена в API, или нет. История предусмотрена — из окна истории можем сделать и диф. Разрешение конфликтов под вопросом.
F>>выполнение команд удалённо, в репозитарии F>>принятие русского текста AVK>Вобще не имеет отношения к SCC.
F>>переименование и перемещение файлов AVK>Ну вот единственное где SCC для SVN мог бы быть полезен. Но AnkhSVN вроде бы это обеспечивает, хоть и не через SCC (через внутренние интерфейсы поддержки SCC студии).
В VS2005 перемещение происходит и в репозитарии. Можно надеятся, что реализация работает через SCC API.
F>>удобная работа с клавиатуры AVK>С чем?
С пользовательским интерфейсом, предоставляемым плагином. Для примера попробуй поработать с AnkhSVN без мышки.
F>>автоматическая блокировка нетекстовых файлов AVK>В SCC поддержки такого нет. Да и не нужно это SVN. AVK>Модель обрабатываемых данных и поведения пользователя. В случае SVN и VSS отличается очень сильно. Например основное, что упрощает SCC — автоматический чекаут файлов. В SVN аналогичная операция просто отсутствует.
Речь идёт о необходимости сериализации доступа к бинарным файлам, в SVN это реализуется командой lock. Первый вопрос: какие есть аргументы в пользу того, что это не нужно?
Garbage In Garbage Out
Re[7]: Интеграция Subversion в IDE: день сегодняшний
Здравствуйте, Mab, Вы писали:
Mab>В том-то и проблема, что OnAfterRenameFiles. А при работе с svn нужно ловить Before.
Зачем? Впрочем есть и IVsTrackProjectDocumentsEvents2.OnQueryRenameFiles.
Mab> Либо после After возвращать файл назад и делать svn mv.
Не надо ничего возвращать, нужно просто entries подкорректировать.
Mab> Второй вариант авторам плагина не понравился, поэтому они решили, что пользователей надо приучать переименовывать с помощью их собственной мегакоманды. По крайней мере, такое у меня осталось впечатление от чтения FAQ.
Ламеры они. Вопрос с Rename стоит и в случае VSS, соотв. весь соотв. функционал должен наличествовать и работать.
AVK>>А зачем это ему? VCS не классы волнуют, а файлы. Переименование файла должен увидеть. Mab>Решарпер при переименовании классов переименовыывает файлы, используя стандартное API студии.
Здравствуйте, fuurin, Вы писали:
F>>>историю изменений файла, папки F>>>диф выбранных версий F>>>разрешение конфликтов AVK>>Имеет довольно слабое отношение к SCC. F>Операция или предусмотрена в API, или нет. История предусмотрена — из окна истории можем сделать и диф.
Единственное что там предусмотрено — контекстное меню. Для этого SCC не нужен.
AVK>>Ну вот единственное где SCC для SVN мог бы быть полезен. Но AnkhSVN вроде бы это обеспечивает, хоть и не через SCC (через внутренние интерфейсы поддержки SCC студии). F>В VS2005 перемещение происходит и в репозитарии. Можно надеятся, что реализация работает через SCC API.
Эта реализация может работать напрямую, пользуясь IVsTrackProjectDocumentsEvents2.
F>>>удобная работа с клавиатуры AVK>>С чем? F>С пользовательским интерфейсом, предоставляемым плагином.
SCC плагин практически не предоставляет никакого пользовательского интерфейса. А вот кастомный вполне может.
F> Для примера попробуй поработать с AnkhSVN без мышки.
А с поддержкой VSS?
F>Речь идёт о необходимости сериализации доступа к бинарным файлам, в SVN это реализуется командой lock.
Попробуй ответить на простой вопрос — почему эта команда появилась недавно?
F> Первый вопрос: какие есть аргументы в пользу того, что это не нужно?
AVK>SCC плагин практически не предоставляет никакого пользовательского интерфейса.
VSS, например, на каждую операцию изменения может вываливать диалог для ввода комментариев. Диф текущих изменений и история изменений — это тоже операции, включённые в SCC API, на которые вываливаются соответствующие диалоги.
F>> Для примера попробуй поработать с AnkhSVN без мышки. AVK>А с поддержкой VSS?
В проектах под VSS (VS2003) я не использую мышку при выполнении операций с репозитарием.
F>>Речь идёт о необходимости сериализации доступа к бинарным файлам, в SVN это реализуется командой lock. AVK>Попробуй ответить на простой вопрос — почему эта команда появилась недавно?
Вероятно, она была реализована в порядке очерёдности. То, что она реализована, уже говорит о том, что она востребована.
F>> Первый вопрос: какие есть аргументы в пользу того, что это не нужно? AVK>А зачем тебе lock?
Что бы предотвратить потерю времени при параллельной модификации бинарных файлов. Смёржить их нельзя, получается что работа одного человека просто выбрасывается — все изменения, которые он сделал, он дожен сделать опять уже в новой версии, а пока он вносит изменения, файл опять мог измениться... Можно говорить, что аналогичная ситуация и с текстовыми файлами, но слияние и разрешение конфликтов в текстовых файлах гораздо проще и выполняется гораздо быстрее, поэтому потеря времени на разрешение конфликтов в текстовых файлах незначительна по сравнению с преимуществом параллельной разработки. С бинарными файлами наоборот — выигранное время при параллельной разработке поглащается временем на разрешение конфликтов.
На примере проектов на C# бинарные документы это: документация (doc), модели (XDE), графика (ico, png и т.д.). С ресурсами форм ситуация двоякая: с одной стороны это текстовый файл (xml), с другой — в него могут сериализоваться и бинарные данные.
Собственно, комментарии разработчиков SVN:
Subversion 1.2 Release Notes
File Locking
"Locking" is a long-requested feature, often known in other systems as "reserved checkouts". While Subversion is still primarily a copy-modify-merge system focused on parallel development, there is widespread acknowledgement that not all files are easily mergeable — binary files in particular, such as artwork, compressed files, proprietary binary formats, or any other non-line-based data.
The goal of the new locking feature is twofold. First, provide a means to force serialized write-access to a file. Second, provide a communication mechanism to prevent users from wasting time on unmergable changes.
Garbage In Garbage Out
Re[7]: Интеграция Subversion в IDE: день сегодняшний
Здравствуйте, fuurin, Вы писали:
AVK>>SCC плагин практически не предоставляет никакого пользовательского интерфейса. F>VSS, например, на каждую операцию изменения может вываливать диалог для ввода комментариев.
А SVN вобще подобного не отслеживает.
F> Диф текущих изменений и история изменений — это тоже операции, включённые в SCC API, на которые вываливаются соответствующие диалоги.
Я тебе уже написал — вся поддержка заключается в добавлении пунктов в контекстное меню.
AVK>>А с поддержкой VSS? F>В проектах под VSS (VS2003) я не использую мышку при выполнении операций с репозитарием.
А что используешь?
AVK>>Попробуй ответить на простой вопрос — почему эта команда появилась недавно? F>Вероятно, она была реализована в порядке очерёдности.
Нет, просто нужды в ней особой нет. Ты можешь конечно не поверить, но все мои знакомые, пользующиеся SVN (а таких немало), операцию lock не используют вобще.
F>>В проектах под VSS (VS2003) я не использую мышку при выполнении операций с репозитарием. AVK>А что используешь?
Клавиатуру. Что такого в этом пунтке, что мы ходим по кругу? Пользовательский интерфейс должен быть максимально адаптирован для работы с клавиатуры. Плагин, не зависимо от схемы интеграции, предоставляет элементы интерфейса и должен удовлетровать этому требованию. VSS плагин этому требованию удовлетворяет.
AVK>>>Попробуй ответить на простой вопрос — почему эта команда появилась недавно? F>>Вероятно, она была реализована в порядке очерёдности. AVK>Нет, просто нужды в ней особой нет. Ты можешь конечно не поверить, но все мои знакомые, пользующиеся SVN (а таких немало), операцию lock не используют вобще.
Без аргументации это так и останется вопросом веры.
Описанная выше проблема возникает при параллельной работе над бинарным файлом. Есть три варианта, почему проблема может не возникать в проекте с несколькими разработчиками: они не работают с бинарными файлами
они работают с бинарными файлами, но волей случая до сих пор не делали одновременных изменений в одном файле
они работают с бинарными файлами, и доступ разграничивают административно (например, сегодня файл правит этот разработчик, завтра — будет время другого)
Garbage In Garbage Out
Re[8]: Интеграция Subversion в IDE: день сегодняшний
Здравствуйте, AndrewVK, Вы писали:
AVK>Не надо ничего возвращать, нужно просто entries подкорректировать.
Они же не работают с WC напрямую, а используют API svn-а.
Mab>>Решарпер при переименовании классов переименовыывает файлы, используя стандартное API студии. AVK>Ну значит должно работать.
Поигрался с последним билдом AnkhSVN. Диагноз -- в морг. Основные операции (add/remove/rename/move) работают через раз. Единожды переименованный файл второй раз переименовать не закоммитив уже нельзя. Я понимаю, что это ограничение SVN, но работать получается невозможно.
Re: Интеграция Subversion в IDE: день сегодняшний
От:
Аноним
Дата:
07.03.06 07:27
Оценка:
Здравствуйте, fuurin, Вы писали:
F>Вывод: на сегодняшний день, AnkhSVN — единственный продукт, который можно считать рабочим, но не реализуя MSSCC API, вряд ли ему суждено стать массовым.
чё то не мсог я в нём из студии посмотерть изменения файла (историю) и посмотреть выбранную ревизию файла... мож не так смотрел ?
Re[2]: Интеграция Subversion в IDE: день сегодняшний
А>чё то не мсог я в нём из студии посмотерть изменения файла (историю) и посмотреть выбранную ревизию файла... мож не так смотрел ?
Опиши конкретнее, в чём проблема — может, смогу помочь.
Garbage In Garbage Out
Re[3]: Интеграция Subversion в IDE: день сегодняшний
От:
Аноним
Дата:
07.03.06 08:59
Оценка:
Здравствуйте, fuurin, Вы писали:
А>>чё то не мсог я в нём из студии посмотерть изменения файла (историю) и посмотреть выбранную ревизию файла... мож не так смотрел ? F>Опиши конкретнее, в чём проблема — может, смогу помочь.
Хочу посмотреть лог изменений файла и поглядеть на разницу между некоторыми ревизиями. командами svn это без проблем, tortoise тоже отлично делает, плагин этот выдаёт лог изменений в xml формате, форматированный и обработанный студией, но страничка мёртвая — diff-ы по ревизиям на ней сотреть нельзя...
Re[9]: Интеграция Subversion в IDE: день сегодняшний
Здравствуйте, Mab, Вы писали:
AVK>>Не надо ничего возвращать, нужно просто entries подкорректировать. Mab>Они же не работают с WC напрямую, а используют API svn-а.
Ну ради такого можно и напрямую влезть, если по другому не получается.
Mab>Поигрался с последним билдом AnkhSVN. Диагноз -- в морг. Основные операции (add/remove/rename/move) работают через раз.
Вобщем надо свой плагин писать. Возьмешься?
Mab> Единожды переименованный файл второй раз переименовать не закоммитив уже нельзя. Я понимаю, что это ограничение SVN, но работать получается невозможно.
Нет такого ограничения в SVN. Возможно такое ограничение есть в SVN client API, ну так оно не икона. Структура WC прозрачна и проста, можно вобще стандартным API не пользоваться.
Re[3]: Интеграция Subversion в IDE: день сегодняшний
От:
Аноним
Дата:
07.03.06 09:01
Оценка:
Здравствуйте, fuurin, Вы писали:
А>>чё то не мсог я в нём из студии посмотерть изменения файла (историю) и посмотреть выбранную ревизию файла... мож не так смотрел ? F>Опиши конкретнее, в чём проблема — может, смогу помочь.
да и ветки/тэги кстатити делать не умеет Опять же всё свожится к использованию для этого tortoise...
Re[4]: Интеграция Subversion в IDE: день сегодняшний
А>Хочу посмотреть лог изменений файла и поглядеть на разницу между некоторыми ревизиями. командами svn это без проблем, tortoise тоже отлично делает, плагин этот выдаёт лог изменений в xml формате, форматированный и обработанный студией, но страничка мёртвая — diff-ы по ревизиям на ней сотреть нельзя...
Дифы открываются из контекстного меню на файле (Diff), в диалоге — выбор ревизий для сравнения. Приложение, выполняющее сравнение, подхватывается из настроек Subversion или переопределяется в конфиге AnkhSVN (если ни то, ни другое не определено, то октрывается встроенный диф — форматированный html).
A зачем какая-либо продвинутая интеграция нужна? Кодить в студии — одно, администрировать проект — совсем другое — зачем смешивать? Я уже несколько лет работаю на связке студия+Subversion+TortoisSVN без какой-либо интеграции и никаких неудобств не испытываю. Хотя, когда перешел с VSS, хотелось кликать прямо в студии.
IMHO, когда люди действительно работают — таких вопросов не возникает — всегда есть что-нибудь более важное, а если делать нечего — возникает желание поиграть с SVN не выходя из студии (может SVN лучше в IE интегрировать — чтобы смотреть историю файлов и т.п. не выходя из rsdn, ну и в аську ещё). Смотрим интернет — куча больших open source проектов сделаны под SVN и (даже) CVS, кое-кто из программеров участвующих в этих проектах вообще из командной строки работает. А кое кому без полной интеграции SVN-a в студию формочку не нарисовать — историю из студии не видно. Какие у вас проекты, если не секрет?
А>A зачем какая-либо продвинутая интеграция нужна? Кодить в студии — одно, администрировать проект — совсем другое — зачем смешивать?
Речь идёт не о продвинутой, а о минимально необходимой интеграции для производительной работы именно при кодировании. IDE неспроста называется интегрированной — всё необходимое для выполнения текущей задачи должно быть здесь, под рукой, без переключения в другое приложение.
А минимально необходимая функциональность такова:
операции над файлом: просмотр истории изменений файла, диф выбранных версий, переименование, разрешение конфликтов — без интеграции в IDE мне придётся открыть explorer, прокликать через несколько папок и найти нужный мне файл, тогда как в IDE нужный мне файл уже под курсором.
операции над структурой каталога: создание, удаление и перемещение файлов и папок — это частые операции при рефакторинге кода. Без интеграции в IDE эти операции приходится дублировать: сначала производить изменения на диске, потом синхронизировать состояние в проекте.
автоматическая блокировка бинарных файлов
(модели, графика, ресурсы форм) при начале редактирования. Не смотря на неоднократные заявления, что блокировка в SVN не нужна, я так и не нашёл информации, как эффективно разрешать конфликты на бинарных файлах. Поэтому блокировка остаётся необходимой операцией при командной разработке.
статус рабочей версии файла (новый, изменённый, конфликтный и т.д.)
При работе в IDE всю необходимую информацию о файлах мне предоставляет IDE. Все операции над файлами активируются из IDE и заканчиваются там же. Мне не нужно переключасться в другое приложение, подстраиваться под другой вид структуры проекта, искать необходимые файлы, синхронизировать состояние проекта с внесенными изменениями на диске.
А>Я уже несколько лет работаю на связке студия+Subversion+TortoisSVN без какой-либо интеграции и никаких неудобств не испытываю.
Человек — вообще легко адаптируемая система. Но оставим это для другого треда.
Честно говоря, вообще не вижу насущной необходимости этой интеграции.
Часто приходится работать с несколькими солюшенами, фиксируя все изменения в рамках одной транзакции SVN.
Пользоваться tortoise'ом вроде тоже не сильно дольше.
Так ли уж оно надо?
Re[2]: Интеграция Subversion в IDE: день сегодняшний
X>Оно надо когда постоянно меняется набор файлов, входящих в солюшн. X>Что есть норма в дисциплине XP
Ну, есть разное "постоянно"
Как часто у адептов XP происходят коммиты и в каком проценте коммитов меняется набор файлов?
Я в стиле XP не работал, но насколько представляю — это все равно не может быть настолько часто, чтобы становилось критично делать все "из одного окошка".
Re[5]: Интеграция Subversion в IDE: день сегодняшний
От:
Аноним
Дата:
09.03.06 08:14
Оценка:
Здравствуйте, fuurin, Вы писали:
А>>Хочу посмотреть лог изменений файла и поглядеть на разницу между некоторыми ревизиями. командами svn это без проблем, tortoise тоже отлично делает, плагин этот выдаёт лог изменений в xml формате, форматированный и обработанный студией, но страничка мёртвая — diff-ы по ревизиям на ней сотреть нельзя...
F>Дифы открываются из контекстного меню на файле (Diff), в диалоге — выбор ревизий для сравнения. Приложение, выполняющее сравнение, подхватывается из настроек Subversion или переопределяется в конфиге AnkhSVN (если ни то, ни другое не определено, то октрывается встроенный диф — форматированный html).
Открываю контекстное меню на файле — выбираю diff, получаю сравнение рабочей копии и то что в head никакого диалога выбора ревизий не наблюдаю ...
А>>A зачем какая-либо продвинутая интеграция нужна? Кодить в студии — одно, администрировать проект — совсем другое — зачем смешивать? F>Речь идёт не о продвинутой, а о минимально необходимой интеграции для производительной работы именно при кодировании. IDE неспроста называется интегрированной — всё необходимое для выполнения текущей задачи должно быть здесь, под рукой, без переключения в другое приложение.
Посмотрите пожалуйста на VisualSVN. Это плагин для Visual Studio 2003 и 2005, позволяющий выполнять все основные операции Subversion. VisualSVN не пытается втиснуться в прокрустово ложе MSSCCI (интегрируется в студию как package), использует TortoiseSVN для UI. В июле 2006 будет выпущена версия с прозрачной поддержкой переименования файлов (в том числе — при рефакторинге Rename для классов в ReSharper'е).
Разработчики VisualSVN будут весьма признательны Вам за содержательный фидбэк здесь в форуме или на адрес .
Здравствуйте, fuurin, Вы писали:
F>Вывод: на сегодняшний день, AnkhSVN — единственный продукт, который можно считать рабочим, но не реализуя MSSCC API, вряд ли ему суждено стать массовым.
Версия 0.6: функциональные замечания:
— на папках нет контекстного меню с svn
— на файлах нет меню update и commit, только на солюшене
— хотелось бы иметь автоматический запрос на блокировку файла при его редактировании (конфигурируется галочкой в опциях вкл/выкл и, может быть, списком типов файлов)
— операции должны работать рекурсивно, учитывая зависимости файлов в проекте (при той же блокировке нужно блокировать .cs и зависимый от него .resx), аналогично — для папок
И те вещи, что уже запланированы на будущее:
— нужно отображение статуса файла в его иконке
— переименование файлов и папок
— добавление, удаление (сейчас работает из окна commit)
Инсталлятор вызвал ошибку в VS 2005 при регистрации пакета (AV в kernel32), хотя сама регистрация прошла успешно.
Большое спасибо за содержательный feedback!
> — на папках нет контекстного меню с svn
Сделаем в 1.0.
> — на файлах нет меню update и commit, только на солюшене
Эти команды сделаны только на уровне рабочей копии специально — чтобы избежать несогласованного состояния рабочей копии. Типичная проблема — когда закоммичена или обновлена только часть файлов — проект не собирается, и требуется значительное время чтобы понять, что не все файлы в актуальном состоянии. Приемлемым решением для коммита видится отображение полного списка изменённых файлов, с галочкой, проставленной для текущего файла/папки. Такой вариант мы планируем сделать в VisualSVN 2.0.
> — хотелось бы иметь автоматический запрос на блокировку файла при его > редактировании (конфигурируется галочкой в опциях вкл/выкл и, может > быть, списком типов файлов)
Спасибо, хороший совет. Постараемся включить эту фичу в VisualSVN 1.1 (roadmap). Если у вас есть время обсудить фичу детальней — укажите пожалуйста email, я пришлю черновик спецификации.
> — операции должны работать рекурсивно, учитывая зависимости файлов в > проекте (при той же блокировке нужно блокировать .cs и зависимый от > него .resx), аналогично — для папок
Ок, блокировку зависимого файла сделаем вместе с автоматической блокировкой.
> Инсталлятор вызвал ошибку в VS 2005 при регистрации пакета (AV в > kernel32), хотя сама регистрация прошла успешно.
Больше ни у кого из пользователей такая ошибка не проявлялась. Может быть она вызвана другим плагином для студии? (В процессе инсталляции выполняется команда "devenv /setup" для корректной инициализации UI студии — и она загружает все плагины). Если Вам не трудно — давайте попытаемся разобрать с проблемой в переписке по email ().
>> — на файлах нет меню update и commit, только на солюшене FS>Эти команды сделаны только на уровне рабочей копии специально — чтобы избежать несогласованного состояния рабочей копии.
Имхо, это должно решаться административно, а не навязываться утилитой разработки.
Скажем, я работаю над каким-то кодом и нахожу баг, заношу его в трекер и тут же исправляю. Хочу залить один или несколько исправленных файлов — зачем мне идти в корень и оттуда искать и фильтровать только необходимое?
Есть компромиссный вариант — вынести в конфигурацию флаг "разрешить svn на файлах". Поддерживать несколько стилей работы, а не навязывать "единственно правильный" — будет плюс для утилиты.
FS> Если у вас есть время обсудить фичу детальней — укажите пожалуйста email, я пришлю черновик спецификации.
Если есть что обсуждать, предлагаю обсуждать это публично. Я ведь не заказчик и не последняя инстанция, а каждый из девелоперов на этом сайте может иметь своё мнение.
Здравствуйте, fuurin, Вы писали: F>Имхо, это должно решаться административно, а не навязываться утилитой разработки. F>Скажем, я работаю над каким-то кодом и нахожу баг, заношу его в трекер и тут же исправляю. Хочу залить один или несколько исправленных файлов — зачем мне идти в корень и оттуда искать и фильтровать только необходимое? F>Есть компромиссный вариант — вынести в конфигурацию флаг "разрешить svn на файлах". Поддерживать несколько стилей работы, а не навязывать "единственно правильный" — будет плюс для утилиты.
Можно еще сделать группировку файлов для более удобной работы(типа изменения в файл1, файл2 — относятсятся к Баг1, а изменения в файл3, файл4 — относятсятся к Фича2). [off]Подсмотренно в IDEA6 [/off]
Здравствуйте, Fyodor Sheremetyev, Вы писали:
FS>Посмотрите пожалуйста на VisualSVN. Это плагин для Visual Studio 2003 и 2005, позволяющий выполнять все основные операции Subversion. VisualSVN не пытается втиснуться в прокрустово ложе MSSCCI (интегрируется в студию как package), использует TortoiseSVN для UI. В июле 2006 будет выпущена версия с ...
Здравствуйте, Sergey J. A., Вы писали: SJA>Ну что там с версией 1.0 ? Скоро будет ?
VisualSVN 1.0 выпущен: http://www.visualsvn.com/download.html
Основные новые фичи:
* Автоматическая перезагружка документов, проектов, солюшена после операции, если они изменились
* Поддержка переименования для файлов и папок (для файлов поддерживается множественное переименование).
* Поддержка Windows XP x64
Re[2]: Интеграция Subversion в IDE: день сегодняшний
Здравствуйте, <Аноним>, Вы писали:
А>A зачем какая-либо продвинутая интеграция нужна? Кодить в студии — одно, администрировать проект — совсем другое — зачем смешивать? Я уже несколько лет работаю на связке студия+Subversion+TortoisSVN без какой-либо интеграции и никаких неудобств не испытываю. Хотя, когда перешел с VSS, хотелось кликать прямо в студии. А>IMHO, когда люди действительно работают — таких вопросов не возникает — всегда есть что-нибудь более важное, а если делать нечего — возникает желание поиграть с SVN не выходя из студии (может SVN лучше в IE интегрировать — чтобы смотреть историю файлов и т.п. не выходя из rsdn, ну и в аську ещё). Смотрим интернет — куча больших open source проектов сделаны под SVN и (даже) CVS, кое-кто из программеров участвующих в этих проектах вообще из командной строки работает. А кое кому без полной интеграции SVN-a в студию формочку не нарисовать — историю из студии не видно. Какие у вас проекты, если не секрет?
Согласен. Но есть одна бяка. Перемещение файлов между папками. Вот тут интеграция с SVN не помешала бы.
... << RSDN@Home 1.2.0 alpha rev. 637>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Здравствуйте, fuurin, Вы писали:
F>PushOk SVN Proxy — платный, да и не работает. F>TortoiseSVNSCC — не работает.
F>Это результаты беглого просмотра на простом Windows .NET проекте в VS2003 и VS2005. На объёмном проекте и при более продолжительной работе, скорее всего, выявятся дополнительные проблемы. F>А что хотелось бы иметь? Стабильную реализацию провайдера MSSCC API, предоставляющую в полном объёме функциональность последней версии Subversion. По крайней мере: F>статус текущей версии F>историю изменений файла, папки F>диф выбранных версий F>автоматическая блокировка нетекстовых файлов F>разрешение конфликтов F>переименование и перемещение файлов F>выполнение команд удалённо, в репозитарии F>удобная работа с клавиатуры F>принятие русского текста
F>И всё это не выходя из IDE. В этом списке даже нет ветвления, переключения между ветками и атрибутов.
Я сам и мои коллеги пользуемся уже около 3-х лет связкой
среда-PushOk SVN Proxy-(редко)TortoiseSVNSCC .
TortoiseSVNSCC – не понимаю что у вас могло не заработать, но покрайней мере базовая функциональность есть и выполняется достаточно быстро. Не спорю, в ранних версиях была приличная кривизна и они даже умудрялись конфликтовали с PushOk SVN Proxy , но в версии 1.3.х уже все исправлено и работает отлично.
Что на мой взгляд очень важно, разработчики TortoiseSVNSCC следят за изменениями SVN клиента и достаточно быстро переносят их.
PushOk SVN Proxy – Возможно не идеальный плагин, но это лучшее что нам удалось найти за доступные деньги.
Тут есть несколько интересных моментов:
1.Разработчики написали и выложили в Опен сурс СОМ интерфейс для SVN, это волшебная вешь вы можете сами написать небольшой VBS скрипт и автоматизировать некоторые операции работы со своими проектами!!!
2.Похоже плагин версии 1.3.х перенесен на использование СОМ интерфейса, так как скорость работы плагина увеличилась на 30-45% (почему то сильно влияет протокол доступа к репозиторию).
3.Приятно удивила тех-подержка. На данный момент функциональность плагина нас устраивает. Но был период когда мы находили ошибки или предлагали некоторые модернизации, так мы получали быстрый и приличный ответ в течение суток, а исправления появлялись от 2-3 дней до недели.
4.И что самое приятное, ОНИ ОТВЕЧАЮТ И НА РУССКИЕ ПИСЬМА !!!
Re[2]: Интеграция Subversion в IDE: день сегодняшний
Кстати, на сегодняшний день (раз уж подняли ветку) лучшее, что я видел, и что не перечислено — это VisualSVN.
Всем рекомендую — очень удобно и качественно.
Re[2]: Интеграция Subversion в IDE: день сегодняшний
iT>Кстати, на сегодняшний день (раз уж подняли ветку) лучшее, что я видел, и что не перечислено — это VisualSVN. iT>Всем рекомендую — очень удобно и качественно.
И платно
Насчёт того что лучшее из того что есть — соглашусь.
Насчёт того что уж очень удобно — не сказал бы, ИМХО есть куда двигаться — к примеру, она у меня довольно сильно втыкала если репозиторий виден не постоянно а только когда нужно сделать какие-то действия (у меня что-то типа диал-апа), ещё какие-то глюки помнится видел...
Но конечно самый приятный фичер в ней — возможность переименовывать файлы "прямо не выходя из бассейна" — непосредственно в IDE MSVC, при рефакторинге проекта мегаудобно, за это можно простить почти всё
... << RSDN@Home 1.2.0 alpha rev. 717>>
Re[3]: Интеграция Subversion в IDE: день сегодняшний
L>Но конечно самый приятный фичер в ней — возможность переименовывать файлы "прямо не выходя из бассейна" — непосредственно в IDE MSVC, при рефакторинге проекта мегаудобно, за это можно простить почти всё
На самом деле самый большой плюс такой, прям, необъемлющий плюс — это то, что он использует TortoiseSVN в полный рост для всего.
И не пытается убого повторить его функционал, который отлично развивается.
А только протягивает ниточку из МS до TSVN.
Re[3]: Интеграция Subversion в IDE: день сегодняшний
Здравствуйте, Left2, Вы писали:
L>Но конечно самый приятный фичер в ней — возможность переименовывать файлы "прямо не выходя из бассейна" — непосредственно в IDE MSVC, при рефакторинге проекта мегаудобно, за это можно простить почти всё
Ухты, как это работает?
How are YOU doin'?
Re[4]: Интеграция Subversion в IDE: день сегодняшний
MF>Ухты, как это работает?
Да вот прям так — правой педалью тыкаешь на файле и в контестном меню говоришь "переименовать" — а вызов команды svn rename Visual SVN берёт на себя.
... << RSDN@Home 1.2.0 alpha rev. 717>>
Re[5]: Интеграция Subversion в IDE: день сегодняшний
Здравствуйте, Left2, Вы писали:
MF>>Ухты, как это работает? L>Да вот прям так — правой педалью тыкаешь на файле и в контестном меню говоришь "переименовать" — а вызов команды svn rename Visual SVN берёт на себя.
А разрюхает ли Visual SVN такие кейсы:
1. В Решарпере нажму F2 на имя класса (rename-рефакторинг) и соглашусь переименовать файл?
2. Мышкой Drag'n'Drop-ну папку с иерархией файлов-классов из одного проекта в другой?
3. То же, что в пункте 2, только ctrl+X, ctrl+V?
How are YOU doin'?
Re[5]: Интеграция Subversion в IDE: день сегодняшний
Здравствуйте, Left2, Вы писали:
L>Да вот прям так — правой педалью тыкаешь на файле и в контестном меню говоришь "переименовать" — а вызов команды svn rename Visual SVN берёт на себя.
а если там есть изменения?
Re[6]: Интеграция Subversion в IDE: день сегодняшний
Здравствуйте, MatFiz, Вы писали:
MF>Здравствуйте, Left2, Вы писали:
MF>>>Ухты, как это работает? L>>Да вот прям так — правой педалью тыкаешь на файле и в контестном меню говоришь "переименовать" — а вызов команды svn rename Visual SVN берёт на себя.
MF>А разрюхает ли Visual SVN такие кейсы: MF>1. В Решарпере нажму F2 на имя класса (rename-рефакторинг) и соглашусь переименовать файл? MF>2. Мышкой Drag'n'Drop-ну папку с иерархией файлов-классов из одного проекта в другой? MF>3. То же, что в пункте 2, только ctrl+X, ctrl+V?
Работают все 3 пункта.
... << RSDN@Home 1.2.0 alpha rev. 786>>
Re[6]: Интеграция Subversion в IDE: день сегодняшний
L>>Да вот прям так — правой педалью тыкаешь на файле и в контестном меню говоришь "переименовать" — а вызов команды svn rename Visual SVN берёт на себя. D>а если там есть изменения?
Скажу честно — не пробовал. Но теоретически проблем быть не должно — ты ж можешь переименовать изменённый файл из черепашки, а Visual SVN просто использует черепашкин (вернее, родной SVN-овский) фичер.
... << RSDN@Home 1.2.0 alpha rev. 717>>
Re[7]: Интеграция Subversion в IDE: день сегодняшний
Здравствуйте, Left2, Вы писали:
D>>а если там есть изменения? L>Скажу честно — не пробовал. Но теоретически проблем быть не должно — ты ж можешь переименовать изменённый файл из черепашки, а Visual SVN просто использует черепашкин (вернее, родной SVN-овский) фичер.
svn при этом ругаеться. говорит только если сделать --force сделаю.