Visual Studio и бесплатные source control system

6yrop

Хочется вести разработку под Visual Studio 2008, но при этом иметь публично доступное хранилище исходников.
Вопросы:
1. Кто-нибудь использовал VS в сочетании с бесплатной source control system?
2. Можно ли работать с SVN без плагина к Visual Studio, только через TortoiseSVN? насколько это удобно?
3. Какие плагины порекомендуете? В частности, ваше мнение о плгинах:
http://ankhsvn.tigris.org (бесплатный. Для VS2008 только Pre-release)
http://www.visualsvn.com/ (платный)

pitrik2

2. Можно ли работать с SVN без плагина к Visual Studio, только через TortoiseSVN? насколько это удобно?
очень странный вопрос
у нас на работе так:
проект включает одновременно и сишарп и джава разработку
если не ощибаюсь то все сишарписты пользуются как раз таким способом
я джава разработчик, студию редко открываю (раз в неделю)
плюс я фанат идеи
поэтому у меня все сишарпные сурцы подключены к идее и оттуда я работаю с svn
для коммитов апдейтов - супер
а вот чтобы видеть какие файлы изменились а какие нет - для этих целей спецально поставил ankhsvn
так что юзаю этот плагин токо для лампочек
у одного коллеги спросил почему он не юзает ankhsvn, он ответил что там глюки иногда случаются, у другого - говорит один раз изза него потерял все изменения на своей машине

6yrop

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

я тебя правильно понял, ты все-таки редактируешь сишарпный код?
Редактируешь файлы ты в VS и лампочки отображают состояние фаайла. А коммитишь ты из Идеи, так?

pitrik2

Редактируешь файлы ты в VS и лампочки отображают состояние фаайла. А коммитишь ты из Идеи, так?
ага :)
остальные коммитят в тортуасе

pitrik2

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

6yrop

остальные коммитят в тортуасе
спасибо :)

6yrop

ты имеешь в виду что они лочат файлы?
если не ошибаюсь, то в vss это можнго отключить
я могу ошибаться, но дело не только в локе. Например, в VSS и TFS можно всегда посмотреть, кто сейчас взял на редактирование файл, т.е. серверу кто-то сказал, что файл редактируют :) (даже в режими многопользователского чекаута)
.. покрайней мере, с файла на диске снимается атрибут read-only :grin:

pitrik2

покрайней мере, с файла на диске снимается атрибут read-only :grin:
на сервере?
дык где это ты видел чтобы файлы как есть на сервере хранились?
там обычно файл истории изменений хранится а не сам файл
а бывает что вообще нет никаких файлов - все в какойнить локал бд хранится

Andbar

на сервере?
Нет, локально. Все файлы, стянутые с сервера помечаются как read-only и студия отказывается их сохранять. Но если стоит соответствующий плагин и в свойствах открытого проекта прописано, что он был стянут с TFS/VSS-сервера, то при попытке изменить файл, студия предлагает его зачекаутить. Соответственно, при чекауте (обычно - неблокирующем, блокируются только бинарники вроде) снимается аттрибут read-only и дальше с файлом можно делать что угодно. При чек-ине этот аттрибут заново устанавливается.

6yrop

если не ощибаюсь то все сишарписты пользуются как раз таким способом
хм, им можно слегка посочувствовать. Без интеграции с VS, наверное, не очень удобно работать, тут вот конкретные юзкейсы описаны
 
Daily-cycles routine errors
For example, it often happens that developer adds a new file into the project but forgets to mark this file as an “added file” in the working copy. During the commit this new file will not be sent into the repository that almost always causes failed builds.
Complicated file management
With modern software development cycles you're often need to change the files layout. For example, move a file from one project to another. To do it without loss of the history you need to perform several routine operations both in the Visual Studio and in the Windows Explorer. Except for significant losses of time, you also can fail with annoying errors.
Dirty commits
It's easy to forget to check the status of the working copy before the starting the new task. It often causes dirty commits, when a single physical commit contains changes from several logical tasks.
http://www.visualsvn.com/doc/understanding-visualsvn.html
  

Andbar

А ещё очень легко случайно лишний файл добавить (например, для датасетов генерятся файлы, которые не нужно добавлять в систему контроля версий).

6yrop

например, для датасетов генерятся файлы, которые не нужно добавлять в систему контроля версий
что за файлы?

pitrik2

For example, it often happens that developer adds a new file into the project but forgets to mark this file as an “added file” in the working copy. During the commit this new file will not be sent into the repository that almost always causes failed builds.
с tortoise svn таких проблем не бывает
Complicated file management
With modern software development cycles you're often need to change the files layout. For example, move a file from one project to another. To do it without loss of the history you need to perform several routine operations both in the Visual Studio and in the Windows Explorer. Except for significant losses of time, you also can fail with annoying errors.
какая нафик хистори? в большинстве систем контроля версии нет команды переименовывания или переноса файлов
Dirty commits
It's easy to forget to check the status of the working copy before the starting the new task. It often causes dirty commits, when a single physical commit contains changes from several logical tasks.
а среда от этого как помогает? просто это должно быть у тебя на уровне рефлексов отработано - перед каждым комитом делать чекаут

xronik111

> в большинстве систем контроля версии нет команды переименовывания или переноса файлов
? svn mv, hg mv, git mv — это что?

pitrik2

чет я не то ляпнул :(

6yrop

с tortoise svn таких проблем не бывает
tortoise тебе предложит полный список файлов (новых, измененных т.е. при коммите тебе надо разбираться, если это новый файл надо его доббовлять в SVN или в игнор. Т.е. надо вспоминать что это за файлы, а это напрягает, и хорошо, когда без этого можно обойтись.
в большинстве систем контроля версии нет команды переименовывания или переноса файлов

как тут уже написали, странное утверждение. Ты что не переименовываешь классы?
а среда от этого как помогает? просто это должно быть у тебя на уровне рефлексов отработано - перед каждым комитом делать чекаут

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

6yrop

http://www.visualsvn.com/
на первый взглят вещь хорошая. Но одна проблемка уже имеется, у меня стоят обе 2005 и 2008 студии, 2008-я нормально подцепила этот плагин, а 2005 при старте выдает мессадж, что не может какую-то сборку загрузить.... Но я собираюсь с SVN только из 2008-ой работать.

Andbar

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

6yrop

специально посмотрел:
xml-ик со схемой батасета
xml-ик с графическим расположением фигур в дизайнере
cs-файл
Все три должны быть под SVN-ом.

Andbar

Я не на додиезе пишу, так что в моём случае там h-файл, но это уже мелочи.
В общем, если смысл нахождения файла с координатами мне ещё понятен (хотя для сборки он, на сколько мне известно, не нужен то смысла добавлять в систему контроля версий код, который генерируется по xml-нику я вообще не вижу. Если, конечно, в генерируемый код не вносятся изменения вручную (которые, по идее, будут потёрты при изменениях датасета).

6yrop

то смысла добавлять в систему контроля версий код, который генерируется по xml-нику я вообще не вижу
генератор запускается при сохранении файла в VS, еще вроде есть тулза из командной строки. Но при компиляции генерация не запускается (если не прикручивать дополнительно).

Andbar

При компиляции генерация не запускается (если не прикручивать дополнительно).
Даже если файликов нет?
Доберусь до работы - проверю, но мне кажется, что это как-то жутко нелогично.
upd: переименовал все файлы датасета (вместе со сгенерированной дллкой и манифестом запустил сборку из консоли. Автоматически запустилась утилита, сгенерировавшая новый заголовок и дллку. Когда же я изменил фаром хмл-файл, описывающий датасет (мимо студии) и запустил сборку вновь, она повторно запустилась. Так что, имхо, эти файлы не нужны в системе контроля версий.

erotic

2. Можно ли работать с SVN без плагина к Visual Studio, только через TortoiseSVN? насколько это удобно?
Пипец.
Можно.
Можно даже без Tortoise, только диффать неудобно, поэтому лучше с Tortoise.
Оставить комментарий
Имя или ник:
Комментарий: