Rambler's Top100
"Knowledge itself is power"
F.Bacon
Поиск | Карта сайта | Помощь | О проекте | ТТХ  
 Базарная площадь
  
О разделе

Основная страница

Группы обсуждений


Тематический каталог обсуждений

Архив

 
 К н и г и
 
Книжная полка
 
 
Библиотека
 
  
  
 


Поиск
 
Поиск по КС
Поиск в статьях
Яndex© + Google©
Поиск книг

 
  
Тематический каталог
Все манускрипты

 
  
Карта VCL
ОШИБКИ
Сообщения системы

 
Форумы
 
Круглый стол
Новые вопросы

 
  
Базарная площадь
Городская площадь

 
   
С Л С

 
Летопись
 
Королевские Хроники
Рыцарский Зал
Глас народа!

 
  
ТТХ
Конкурсы
Королевская клюква

 
Разделы
 
Hello, World!
Лицей

Квинтана

 
  
Сокровищница
Подземелье Магов
Подводные камни
Свитки

 
  
Школа ОБЕРОНА

 
  
Арсенальная башня
Фолианты
Полигон

 
  
Книга Песка
Дальние земли

 
  
АРХИВЫ

 
 

Сейчас на сайте присутствуют:
 
  
 
Во Флориде и в Королевстве сейчас  04:37[Войти] | [Зарегистрироваться]
Обсуждение темы:
Альтернативная система контроля версий.

Как известно, подавляющее большинство языков программирования формализованы, т.е. известна и конечна их синтаксическая структура. Это постулат первый.
Большинство систем контроля версий работает с файлами, как наименьшим элементом обмена информацией. То есть, в ряде систем используемый файл лочится (недоступен другим разработчикам) или создаются его редакции, которые затем сливаются (merging), что тоже часто вызывает коллизии неразрешимые автоматическими средствами. Это постулат воторой.
Язык разметки XML хорошо подходит для хранения структурированной информации и обмена ей. Это замечание.
Предположение: возможно сделать такую систему контроля версий, которая работает со структурными элементами языка, как наименьшими единицами обмена информацией. То есть, если вам нужно отредактировать один метод класса в модуле, то лочится для других пользователей системы только этот метод. После редактирования метод мержуется на основе синтаксической структуры класса, а не на основе построчного сравнения редакций файла.

 Александр Бакулин

Количество сообщений на странице

Порядок сортировки сообщений
Новое сообщение вверху списка (сетевая хронология)
Первое сообщение вверху списка (обычная хронология)

Перейти на конкретную страницу по номеру


Всего в теме 44 сообщения

Добавить свое сообщение

Отслеживать это обсуждение


Смотрите также обсуждения:
Case-средства, средства коллективной разработки и т.п.
  • О CASE средствах.
  • Системы контроля версий.
  • Change Manager DS
  • О системах контроля ошибок
  • Системы контроля версий. Средства управления проектом.

  • <<<... | 24—15 | 14—5 | ...>>>
    Всего сообщений в теме: 44; страниц: 5; текущая страница: 4


    № 14   18-04-2004 15:44 Ответить на это сообщение Ответить на это сообщение с цитированием
    если сделать нечто, что представляет структурные единицы программы, как тектовые файлы, это решит проблему?


    № 13   17-04-2004 18:30 Ответить на это сообщение Ответить на это сообщение с цитированием
    Я полностью согласен с автором вопроса. Нужно чтоб контроль версионности проходил не на уровне файла, а на более низком уровне. На уровне глобальных процедур, обьектов, структур, переменных. К этому можно добавить, что в этой системе я бы предусмотрел отдельную компиляцию всех процедур на машине программиста. С последующим тестированием по входным и выходным параметрам.
    На центральном сервере каждая глобальная процедура, обьект, переменная и структура регистрируется. И сразу становится видной для всех пользователей этой системы. При этом Сервер будет хранить не только конечную (рабочую) версию данной единицы но и все придедущие. И только тот человек, который создал данную единицу может в последствии редактировать ее.
    Любое сеанс редактирования единицы вызывает повышение версии данной единицы. И только человек ответственный за данную единицу будет устанавливать номер рабочей версии данной единицы.
    Все локальные единицы не будут видны для всех остальных пользователей. Но при этом я думаю, что также нужен контроль версионности. только сервером версионности будет выступать локальная машина.
    На сервер версий будут сливаться уже откомпилированные единицы плюс исходный код.
    Серверу только останется соединить все модули в соответсвии со своей таблицей единиц.
    Также я думаю, что он будет распределять эти единицы по файлам библиотек, если они будут предусмотрены.
    Будет фактически не важно на каком языке программирования будут писаться каждая единица в отдельности. Самое главное чтоб соблюдался единный формат всех конечных модулей.


    № 12   17-04-2004 12:45 Ответить на это сообщение Ответить на это сообщение с цитированием
    Сейчас обычно синхронизируют на уровне элементов, "известных" операционной системе (именно там и сетевые средства). Я думаю такую систему можно придумать и встроить в какоую-нибудь RAD. В любом случае, пока у нас ОСи не будут знать "нечто отличное" от файлов, для "общего решения" силы тратить не стОит...


    № 11   16-04-2004 19:19 Ответить на это сообщение Ответить на это сообщение с цитированием
    Ответ на »сообщение 10« (Max)
    ___________________________


    Почему-то »сообщение 6« Александр "не заметил" :(


    Заметил и в, принципе, с приведенными тезисами согласен. Но проблемы, описанные в пункте 1 - это проблемы нотификации. Программисты должны работать с ситемой оповещения о таких изменениях.
    А вот на директивы компиляции возразить, пожалуй и нечего. Разве что породить древовидную структуру для каждого ключа компиляции. Но при таком подходе получим тот же SVC.


    № 10   16-04-2004 16:54 Ответить на это сообщение Ответить на это сообщение с цитированием
    Ответ на »сообщение 6« (Дмитрий Пашин)
    ___________________________

    Пример 1. программист A изменил в родительском классе объявление метода(в наследниках о не использовался), а программист B в это же время добавил в классе-наследнике вызов этого метода по старому объявлению.


    Поддерживаю, вне зависимости от метода блокировки в VCS будет нерабочий код :(

    Почему-то »сообщение 6« Александр "не заметил" :(


    № 9   16-04-2004 13:00 Ответить на это сообщение Ответить на это сообщение с цитированием
    Ответ на »сообщение 8« (Max Belugin)
    ___________________________


    А работа без блокирования вам не нравится?


    Не то чтобы не нравится, но она не вызовет коллизий. К тому же, если один метод одновременно правят два человека это недостаток либо архитектуры, либо управления проектом.


    № 8   16-04-2004 11:44 Ответить на это сообщение Ответить на это сообщение с цитированием
    Ответ на »сообщение 7« (Александр)
    ___________________________


    На уровне методов применяется блокирование. То есть одонвременно один метод 2 челоека изменять не могут. Соответственно и проблем вроде бы должно быть меньше и работать с файлом могут несколько человек. Но это мое IMHO.


    А работа без блокирования вам не нравится?


    № 7   16-04-2004 11:05 Ответить на это сообщение Ответить на это сообщение с цитированием
    Ответ на »сообщение 5« (Max Belugin)
    ___________________________

    Вы пришли к выводу, что эти проблемы могли исчезнуть при переходе от текста программы к ее структуре? Можно пример?


    На уровне методов применяется блокирование. То есть одонвременно один метод 2 челоека изменять не могут. Соответственно и проблем вроде бы должно быть меньше и работать с файлом могут несколько человек. Но это мое IMHO.


    № 6   16-04-2004 06:58 Ответить на это сообщение Ответить на это сообщение с цитированием
    Подобная идея у меня уже возникала, и вот к каким выводам я пришел:

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

    Пример 1. программист A изменил в родительском классе объявление метода(в наследниках о не использовался), а программист B в это же время добавил в классе-наследнике вызов этого метода по старому объявлению.
    Пример 2. директивы компиляции

    Даже копиляторы могут лишь обнаружить такие конфликты, а объединить их со 100%ной правильностью может пока лишь человек.
    Мораль: Синтаксический анализ программ будет не намного лучше построчного сравнения.
    Я бы тратить силы на разработку такого ПО не стал...



    № 5   15-04-2004 18:24 Ответить на это сообщение Ответить на это сообщение с цитированием
    Ответ на »сообщение 3« (Max Belugin)
    ___________________________
    Да, приходилось использовать и SourceSave, и CVS. Именно в CVS в некоторых случаях и получаются проблемы при мержевании версий, которые невозможно разрешить автоматически.


    Вы пришли к выводу, что эти проблемы могли исчезнуть при переходе от текста программы к ее структуре? Можно пример?


    <<<... | 24—15 | 14—5 | ...>>>
    Всего сообщений в теме: 44; страниц: 5; текущая страница: 4


    Добавить свое сообщение

    Отслеживать это обсуждение

    Дополнительная навигация:
    Количество сообщений на странице

    Порядок сортировки сообщений
    Новое сообщение вверху списка (сетевая хронология)
    Первое сообщение вверху списка (обычная хронология)

    Перейти на конкретную страницу по номеру
      
    Время на сайте: GMT минус 5 часов

    Если вы заметили орфографическую ошибку на этой странице, просто выделите ошибку мышью и нажмите Ctrl+Enter.
    Функция может не работать в некоторых версиях броузеров.

    Web hosting for this web site provided by DotNetPark (ASP.NET, SharePoint, MS SQL hosting)  
    Software for IIS, Hyper-V, MS SQL. Tools for Windows server administrators. Server migration utilities  

     
    © При использовании любых материалов «Королевства Delphi» необходимо указывать источник информации. Перепечатка авторских статей возможна только при согласии всех авторов и администрации сайта.
    Все используемые на сайте торговые марки являются собственностью их производителей.

    Яндекс цитирования