Страницы

Поиск по вопросам

вторник, 28 января 2020 г.

Редактирование файлов одновременно с другом

#javascript #java #c_sharp #python #c


Встал вопрос о том, что нужно реализовать синхронную разработку. 

Грубо говоря, файл лежит в папке на диске. 

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

С его стороны тож самое. 

P.S Расположение файла изменять нельзя
    


Ответы

Ответ 1



Для реализации совместного редактирования исходников в реальном времени существует большое количество плагинов для популярных текстовых редакторов и IDE. Например, это togetherly для Emacs, либо CoVim для vim. А можно посмотреть и в сторону онлайн-сервисов, обеспечивающих подобный функционал: тут всё зависит от используемых вами технологий. Вот, например, скринкаст с togetherly, на котором видно, что это, и как оно вообще работает: На мой взгляд, подобные тулзы очень удобны, когда необходимо удалённо обсудить работу конкретной части проекта, задать вопросы, etc. Но пользоваться таким режимом для совместной разработки - это вряд ли, скорее, Вам с другом стоит организовать работу, используя какую-либо VCS.

Ответ 2



Одновременную разработку ведут в системах версионного контроля (git, mercurial, tfs - все современные системы cvs являются dcvs, то есть распределёнными) Если же вы хотите сделать собственную систему, в которой одновременно с разных мест редактировать файл. Это очень непростой вопрос, в котором множество мелочей. Почитайте вот такие две статьи: Совместное редактирование. Часть 1 Совместное редактирование. Часть 2 Возможные подходы Блокировка всего документа при редактировании Блокировка части документа Differential synchronization Operation Transformation Наиболее подходящим в вашем конкретном случае мне кажется последний вариант. В основе OT лежит довольно простая идея. Все изменения данных мы описываем как операции, которые пересылаем и преобразуем относительно других без самого документа. Когда операция приходит от одного пользователя к другому, мы ее трансформируем таким образом, чтобы она стала валидной относительно разницы между документами этих двух пользователей, выраженной в операциях. Звучит заумно, но на самом деле принцип довольно простой.

Комментариев нет:

Отправить комментарий