Форум программистов, компьютерный форум, киберфорум
Наши страницы
Программирование Android
Войти
Регистрация
Восстановить пароль
 
Tester64
396 / 357 / 46
Регистрация: 22.05.2013
Сообщений: 2,518
#1

SVN на один файл

17.01.2015, 00:14. Просмотров 421. Ответов 2
Метки нет (Все метки)

Гуру, дайте совет! (или направьте на другую ветку форума - не нашел)

Есть один файл (класс) в нескольких проектах. Его постоянно правят. Причем иногда разные разработчики в разных проектах на разных компах.

1) Можно ли в каждом проекте создать свой SVN репозиторий только для одного файла? Без захвата остальных из этой-же папки?
2) Причем со сравнением перед обновлением, если менялось с двух сторон.
3) И (самое главное) без хранения мусора от SVN в папке проекта!

В идеале bat/cmd-файлом. Поработал, довел до разумно-рабочего состояния - запускаю обновление с сервером...

Про SVN знаю только основы. Общие принципы, даже "для себя" пробовал. Но пока не нужно было. А это уж слишком специфичная задачка... Предстоит менять разные методы из одного класса ("ты отвечаешь за эти методы, а я за эти"), пересечения в одной процедуре не должно быть, но файл один (разделить не получится). По дате синхронизировать тоже не получится - нужен сервер синхронизации! (вдруг время сбилось, откатать на прошлую версию надо, оба меняли - два поменяли - а третьему использовать еще не обьединенное).

Раньше за все изменения в файле отвечал только я и то пришлось свой синхронизатор писать между проектами (на 1С).
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.01.2015, 00:14
Ответы с готовыми решениями:

Можно ли с помощью SVN использовать один проект двум разработчикам
Здравствуйте! Подскажите пожалуйста, можно ли с помощью SVN использовать...

Папка build наполняется файлами *.rawtopro и не исключается из коммитов SVN
С какого-то момента (возможно обновления версии) Android Studio стала генерить...

[bat] move c:\tmp\.svn c:work\.svn
всем привет. почему то он не распознает .svn как валидный путь. как можно...

Файл svn: как его импортировать и что с ним делать
Здравствуйте, достался мне проект на asp.net который необходимо запустить, но в...

Создать файл произвольных символов: Вывести в один файл цифры, содержащиеся в файле, а в другой файл литеры
Создать файл произвольных символов. Вывести в один файл цифры, содержащиеся в...

2
Kastaneda
Jesus loves me
Эксперт С++
4822 / 2996 / 345
Регистрация: 12.12.2009
Сообщений: 7,558
Записей в блоге: 2
Завершенные тесты: 1
17.01.2015, 10:07 #2
не совсем понятна задача.
Если файл используется в разных проектах и его нужно поддерживать в актуальном состоянии (в одном проекте файла поменяли, в другом заапдейтили обновления), то создайте на сервере репозиторий для этого файла. Зачекаутить можно куда угодно, только не в корень проекта, т.к. там своя папка .svn будет. Соответственно этот файл нужно будет комитить/апдейтить отдельно от файлов проекта.

Добавлено через 2 минуты
Цитата Сообщение от Tester64 Посмотреть сообщение
3) И (самое главное) без хранения мусора от SVN в папке проекта!
папка .svn все равно будет. Если это принципиально, то можно придумать обходное решение. Например первое, что пришло в голову это зачекаутить этот файл не в папку проекта, а совершенно в другое место. А в самом проекте сделать симлинк на него. Таким образом .svn не будет и с файлом можно будет работать напрямую. Если дело под виндой происходит (там симлинки не поддерживаются), то тогда в самом проекте (хоть в IDE) настроить, чтоб подключался внешний файл.

Добавлено через 1 минуту
Цитата Сообщение от Tester64 Посмотреть сообщение
или направьте на другую ветку форума - не нашел
http://www.cyberforum.ru/version-control/
1
Tester64
396 / 357 / 46
Регистрация: 22.05.2013
Сообщений: 2,518
17.01.2015, 12:54  [ТС] #3
Цитата Сообщение от Kastaneda Посмотреть сообщение
http://www.cyberforum.ru/version-control/
Не нашел! Спасибо! Искал по словам SVN. Следующие вопросы уже буду задавать там, а пока, может знаете:
Цитата Сообщение от Kastaneda Посмотреть сообщение
папка .svn все равно будет
А это ни как не обойти? Например разделить эту папку и файл. Для каждого проекта сделать внешнюю папку D:\HellowWorld_MyClass\.svn\ а файл положить в папку D:\HelloWorld\src\com\my\myclass.java

Цель - создать целостную папку проекта, которую легко архивировать и SVNить уже с такими-же папками на других компах, а не по файлово. Сейчас у меня каждая успешная версия проходит Ok.bat который 7zip-ит его по дням в две внешних папки. Внутри минимум лишнего, но все в комплекте. Если разнести myclass в другую папку, прийдется захватывать и ее целиком, что не нужно. Да и размер архива будет нереально расти.

Пока вижу решение в том что батник, который должен выравнивать версии:
1) копирует мой класс из моей папки проекта во внешний репозиторий, обновляя то что там лежит
2) проверяет там, выравнивает, дает возможность сравнить построчно
3) копирует файл назад в проект.
Но это уже писать целый комбайн... Может есть встроенное в SVN решение? Пока что я понял из технологии репозиториев лишь самые базовые функции... но раньше слышал что "с бубном" там можно наладить крайне сложные методы синхронизации!

Добавлено через 8 минут
Цитата Сообщение от Kastaneda Посмотреть сообщение
не совсем понятна задача.
Если файл используется в разных проектах и его нужно поддерживать в актуальном состоянии (в одном проекте файла поменяли, в другом заапдейтили обновления), то создайте на сервере репозиторий для этого файла.
Вот здесь "поплыл"! Еще плаваю в терминах. Задача (пока гипотетическая):
1) есть проект, который между несколькими авторами синхронизируется через общий репозиторий на сервере.
2) есть другой проект, класс которого есть и в первом проекте и во втором. Меняется класс в обоих местах, но в обоих проектах должна быть самая свежая версия. Улучшили в первом проекте - закинули во второй, во втором - в первый, в обоих - выравнили сравнением построчно.
3) После обновления файла из другого проекта, репозиторий проекта просто должен обнаружить что файл обновили и отправить в репозиторий сервера, для отправки второму разработчику этого-же проекта всех изменений по проекту.

Добавлено через 6 минут
Проблема (для меня) в том что .svn сильно "раздувается", увеличивая папку проекта на случай быстрого полного архивирования кода. По моим наблюдениям по долго разрабатываемым проектам (чужим), размер папки может быть и в 3-10 раз больше самого кода. На папку проекта в 1.5 Мб находил .svn в 40 Мб!!! Предпочел бы хранить ее вне папки проекта. Возможно в более высоком уровне. HelloWorld\HelloWorld\src... + HelloWorld\.svn + HelloWorld\MyClass1\.svn
При необходимости скинуть полный исходник на флешку кидать лишь HelloWorld\HelloWorld\*.*
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
17.01.2015, 12:54

Один файл - запихнуть всё в один ексешник
Здравствуйте,скажите.Вот есть программа,написанная в Билдере 06.В программе...

Создать файл произвольных символов. Вывести в один файл цифры, содержащиеся в файле, а в другой файл символы, сохранив первоначальный порядок. Вывести
Создать файл произвольных символов. Вывести в один файл цифры, содержащиеся в...

Разработать командный файл, который бы запускал какой-либо файл один раз в сутки
Нужна помощь! Разработать командный файл, который бы запускал бы какой-либо...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru