LINUX.ORG.RU
ФорумTalks

Универсальная VCS


0

0

Доброго времени суток.

Часто на ЛОРе, да и не только, возникают споры какая же vcs лучше. Я пользуюсь плотно только svn и ClearCase и с другими знаком крайне поверхностно, поэтому могу ошибаться, так что прошу поправить меня если где не прав.

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

Так вот вопрос, а почему бы не сделать программу которая была бы прослойкой между vcs и пользователем. Т.е. для пользователя был бы всегда один и тот же интерфейс работы с системой контроля версий, но при этом программа работала бы с разными vcs. Тогда можно реализовать интересную вещь: ставим на машину несколько vcs и предложенную программу-прослойку, и она работая со всеми системами одновременно, сама выбирает какую систему использовать для какой функции(ну к примеру для работы с бранчами удобнее использовать git(к примеру, как на самом деле я ХЗ), а вот при простой операции checkout она файлы берет из svn). При этом конечно же программа должна заботиться о синхронизации репозиториев разных vcs.

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


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

Sphinx ★★☆☆
()
Ответ на: комментарий от Sphinx

Не совсем! Во первых одно дело интеграция в IDE другое отдельная тулза(которую эта же IDE может использовать, и при этом сразу же получает поддержу большинства vcs).

Опять же идея про использование лучшего от каждой vcs никак не отражена в IDE.

P.S. Я не настаиваю на своей правоте. Просто действительно интересно. Если оно действительно может быть полезно, возможно даже возьмусь написать.

Daeloce
() автор топика

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

видишь ли, дело в том, что git работает лучше других vcs во _всех_ отношениях

thesame ★★★★
()
Ответ на: комментарий от thesame

>видишь ли, дело в том, что git работает лучше других vcs во _всех_ отношениях

Вот я на 100% уверен, что найдется множество человек которые с вами не согласятся! :)

Daeloce
() автор топика
Ответ на: комментарий от Daeloce

Извини, я не дочитал до этого места:

сама выбирает какую систему использовать для какой функции(ну к примеру для работы с бранчами удобнее использовать git(к примеру, как на самом деле я ХЗ), а вот при простой операции checkout она файлы берет из svn).


Это совершеннейший кошмар.
Придётся параллельно держать файлы
под управлением разных SCM,
при этом синхронизируя все репо.

А это твоё

ну к примеру для работы с бранчами удобнее использовать git

вот при простой операции checkout она файлы берет из svn



попахивает отсутствием понятия о том, что такое SCM
вообще.

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

Sphinx ★★☆☆
()
Ответ на: комментарий от Daeloce

> лучшего от каждой vcs никак не отражена в IDE.

Напиши, пожалуйста, что в каких SCM ты считаешь «лучшим».

Sphinx ★★☆☆
()

Предлагаю создать драйвер ФС, который был бы фронтендом к распространенным ФС. Мелкие файлы читались бы из Raiser, крупные - из XFS, снэпшоты поддерживались бы при помощи ZFS, а имена 8.3 брались бы из FAT32. Ес-но, все должно синхронизироваться.

Somniator
()
Ответ на: комментарий от Sphinx

>Придётся параллельно держать файлы

под управлением разных SCM,
при этом синхронизируя все репо.

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

Напиши, пожалуйста, что в каких SCM ты считаешь «лучшим».

Я если честно не знаю. Меня и в svn все устраивает(хотя от dynamic view я бы не отказался :)). Идея была рождена бесконечными спорами о том какая система контроля версий лучше.

Daeloce
() автор топика
Ответ на: комментарий от Somniator

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

Daeloce
() автор топика
Ответ на: комментарий от Somniator

предлагаю создать ОС, которая была бы фронтендом к распространенным ОС... ну дальше вы понели

thesame ★★★★
()
Ответ на: комментарий от Daeloce

> Идея была рождена бесконечными спорами о том какая система контроля версий лучше.

Попробуй использовать рациональный анализ, чтобы определить,
какая же SCM лучше. Можно было бы заслушать доводы сторон за
и против существующих решений.

а накладные расходы думаю будут не сильно велики.


Только для маленьких репозиториев, которые и так
можно быстро конвертировать между разными SCM.

Sphinx ★★☆☆
()

Ладно, по числу негативных отзывов понял что идея бредовая по определению!:) Реализация универсального интерфейса есть в большинстве крупных IDE, а совместное одновременное использование разных vcs - бред! Посему:

/thread

Daeloce
() автор топика

Ты сведешь все VCS к общему знаменателю (какому-нибудь довольно примитивному). Например, даже в git и Mercurial бранчи реализуются сильно по-разному, не говоря о том, что обе реализации отличаются от реализации в SVN.

tailgunner ★★★★★
()
Ответ на: комментарий от tailgunner

>Например, даже в git и Mercurial бранчи реализуются сильно по-разному, не говоря о том, что обе реализации отличаются от реализации в SVN.

То что реализуются по разному это понятно. Но ведь интерфейс работы с ними идеалогически одинаковый. Или нет?

Daeloce
() автор топика
Ответ на: комментарий от Daeloce

> Но ведь интерфейс работы с ними идеалогически одинаковый. Или нет?

Нет. В данном случае именно это имелось в виду - понятно, что хранилища у всех трех систем разные.

tailgunner ★★★★★
()

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

Bazaar.

В нем есть такая штука Foreign Branches, через них он напрямую работает с репозиториями Subversion (c помощью bzr-svn), Git и Mercurial (bzr-hg и bzr-git, соответсвенно).

oc
()

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

Syncro ★★★★★
()
Ответ на: комментарий от Daeloce

между старыми централизованными и модными распределенными есть немного разницы

Syncro ★★★★★
()
Ответ на: комментарий от oc

Всякие прозрачные интерфейсы к другим SCM есть и во ртути с гитом.

Sphinx ★★☆☆
()
Ответ на: комментарий от thesame

видишь ли, дело в том, что git работает лучше других vcs во _всех_ отношениях

Туда уже добавили докачку? А то без неё скачивание толстых git-репозиториев на медленном и нестабильном интернете попросту невозможно.

Deleted
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.