Альтернативы для Профессионального контроля версий [закрыто]

57

Мы сотрудничаем с некоторыми не программистами (писателями), которые должны внести свой вклад в один из наших проектов.

Теперь им просто не нравится идея использовать Git (или что-то в этом роде) для управления версиями своей работы. Я думаю, что это потому, что они просто не считают нужным оборачиваться извращенными концепциями контроля версий. (когда я впервые представил их ветвлению и слиянию - они выглядели так, как будто я их обижал.)

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

Я пришел с некоторыми идеями ...

  • попросите их сохранять свою работу в виде отдельного файла каждый раз, когда они вносят какие-то нетривиальные изменения, а затем используйте diff на нашей стороне, чтобы просто отслеживать изменения.
  • написать программу (на Python), которая каким-то образом реализует «вехи» в CSSEdit.

О проекте:

Это система обработки естественного языка (написана на C + Python). Мы наняли некоторых авторов для подготовки материалов для системы на разных языках. И по мере развития программного обеспечения нам нужно, чтобы эти авторы вносили изменения в свои материалы (статьи). Иногда изменения очень малы (словом или двумя), а иногда и большие.

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

treecoder
источник
15
@rwong - или вики с версионированием, это тоже может сработать.
Йорис Тиммерманс
4
Добавление к комментарию @MadKeithV, как насчет git powered wiki? github.com/github/gollum - некоторые изменения в рабочем процессе будут сделаны, вы пытаетесь соединить две команды. Вы изучили их текущие инструменты? Существует небольшая вероятность того, что они поддерживают какой-то контроль версий, и ваши авторы никогда не удосужились это выяснить ..
Яннис
20
Это действительно просто. Если вы собираетесь платить этим людям, скажите им, что они могут либо использовать ваши инструменты и получать оплату, либо, если они отказываются использовать ваши инструменты, не получают оплату. Любое промежуточное положение будет означать больше работы с вашей стороны, так как это стоит денег, это уравновешивает поиск группы людей, которые будут работать с вашими инструментами.
Ramhound
4
Fossil - это интересная VCS, которая поставляется с версионной Wiki. Мы использовали его как способ обновления документации, но вы можете использовать его для «проверки» таких вещей.
Бен Брока
34
ПОЧЕМУ вы пытались ввести ветки и слияния с нетехнологиями? Вы хотите, чтобы их работа была версионной, хорошо. Вы можете сказать им, как вы хотите сохранить. Вы хотите, чтобы они обрабатывали ветви и слияния, вы уходите из глубокого конца. Ты должен был получить им что-то приятное и легкое, например, Черепаху *, и избегать говорить им все, что им действительно не нужно.
Дэвид Торнли

Ответы:

102

когда я впервые представил их ветвлению и слиянию - они выглядели так, как будто я их обижал

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

Так почему бы не объяснить только «зафиксировать» (сохранить) и «обновить»? Два действительно простых понятия. Я уверен, что вы можете объяснить это менее чем за 10 минут.

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

Томас Бонини
источник
20
+1. Для их целей просто сохранять прямолинейную историю - это радикальное и изменяющее игру понятие. Я думаю, что вряд ли писателю когда-либо действительно понадобятся ветвления и слияния, и если они это сделают, им понадобится рука разработчика, пока они справляются.
Дэн Рэй
7
@BillK, вы на самом деле пытались объединиться с Git? Я думаю, что это работает довольно хорошо, намного лучше, чем с SVN. (Я не защищаю использование слияния там, где это не нужно.)
svick
10
@ Bill K Честно говоря, это звучит так, как будто вам нужно наверстать упущенное после 20 лет в SVN (если даже). Разветвление и слияние может не иметь смысла для этих авторов, но я не уверен, как вам удавалось программировать в течение 20 лет, даже не создавая репо. Есть очень много случаев, когда ветки являются хорошей практикой и облегчают вашу жизнь; на самом деле, слепое отклонение концепции показывает плохое суждение (ИМХО). В SVN ветвление было болью, но с мерзавцами все стало действительно легко. Сделайте себе одолжение, избавьтесь от своего эго и потратьте день на изучение основ git. Вы не пожалеете об этом, обещал!
Робин
6
@ user606723: TortoiseSVN и TortoiseGIT предлагают интеграцию Windows Shell.
Рой Тинкер
6
Я почти уверен, что попытка научить Git разветвляться и объединяться с нетехниками - это нарушение прав человека.
Стив Беннетт
69

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

Для git звучит так, как будто в конце концов вы в конечном итоге предоставите авторам правильные версии веток, так что просто поместите репозиторий git в выпадающий список и обработайте ветвление и слияние для авторов.

Olivers
источник
21
Я собирался предложить то же самое. Нет причин, по которым вы также не можете сделать папку в Dropbox git-репо (они не должны знать) и выполнять периодические (например, ежедневные) коммиты. Таким образом, вы получаете все приятные вещи git (различия, журналы, разделы и т. Д.) Бесплатно.
Саймон Уитакер
4
Убедитесь, что вы используете платную версию, поскольку бесплатная версия сохраняет версии только в течение ~ 30 дней, если я правильно помню.
DMan
5
Я могу получить только -1 ответ, который предлагает внешнюю службу, вводит единственную точку отказа и ставит ваши данные в зависимость от потенциальных злоумышленников, когда в других ответах предлагается так много полезного программного обеспечения и явно представлены заинтересованные стороны. как способные программисты.
Сэм Хочевар
4
@DavidThornley: вы не слышали о реальных проблемах безопасности с Dropbox ???
Сэм Хоцевар
3
@ Сэм Hocevar: ОК, теперь у меня есть. Это было четыре часа уязвимости, что, конечно, не хорошо, но не обязательно означает, что это плохая идея. Опять же, это зависит от того, насколько чувствительным является письмо, и является ли приемлемым небольшой шанс, что его увидит посторонний. (Очевидно, что он не подходит для медицинских карт, но у меня нет никаких сомнений по поводу того, чтобы оставлять там плохую беллетристику и незаконченные программные проекты.)
Дэвид Торнли
28

По правде говоря, ответ в вашей редакции: «Мы наняли некоторых авторов» - иногда вы просто должны быть чертовски мыслящими ... они хотят ваших денег, они должны делать то, что вы хотите, при условии, что то, что вы хотите, не является необоснованным.

Аргумент, который вы приводите, является аргументом, который вы уже выдвинули - нам нужно иметь возможность сделать X, Y и Z, чтобы заставить продукт работать - и для этого нам нужно, чтобы вы это сделали. Мы будем как можно более благосклонны, но для того, чтобы это работало (и, следовательно, чтобы это продолжалось как источник дохода для вас, писателя), это должно было произойти.

Я склонен согласиться с тем, что подходящее решение на основе Wiki может показаться хорошим вариантом, но проблема в том, как найти компромисс между их рабочим процессом и вашими требованиями.

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

Murph
источник
Я полностью согласен с тобой. Но вы видите, что между нами (командой программистов) и писателями есть нечто, называемое «менеджмент». Менеджмент нанял авторов и сказал нам работать с ними. Тот факт, что они не хотят изучать Контроль версий, это то, что руководство видит в проблеме, которая должна быть «скорректирована» между нами (командой) и ими (программистами).
Treecoder
1
Я вроде как догадался ... но тогда вы должны довести свое дело до руководства, и это то же самое дело. Они правы, что это то, что нужно «скорректировать» (интересный выбор слова) - но компромисс - это двоякая вещь, вы должны дать им что-то, с чем они могут работать, им нужно работать с этим.
Мерф
Yay - downvote без объяснений, всегда такие.
Мерф
2
@greengit Проблемы, которые необходимо «скорректировать» между командами, являются частью управления. Передача ответственности одной команде либо ленива, либо, возможно, намек на то, что руководство предпочло бы подход этой команды. Поэтому я бы посоветовал вам предложить руководству более подходящее для вас решение и позволить им беспокоиться обо всем остальном.
Яннис
3
У меня есть склонность представлять эти «корректировки» руководству в форме бюджета для их предлагаемых изменений. «Конечно, мы можем избежать их использования (мерзавец,…). Нам нужно будет нанять секретаря, чтобы сделать это для них. Подпишитесь здесь, и я начну интервью в понедельник».
BRPocock
18

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

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

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

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

Алан Барбер
источник
+1 Если бы это было возможно, это было бы "проблема решена!" для нас. Это не потому, что мы небольшая компания, и я не думаю, что предложение пощадить одного разработчика частично или исключительно для этой задачи вернуло бы мне улыбки от (идиотского) руководства. Я действительно так отношусь к нашему менеджменту.
Treecoder
2
@greengit - если вы предполагаете, что это единственное решение, которое, по вашему мнению, сработает, то затраты заставят менеджмент нанять разных людей, которые будут работать с вашими инструментами. Конечно, вы можете объяснить руководству, что ЛЮБОЕ решение, кроме контроля версий, СТОИТ ДЕНЬГИ, либо вы работаете над проблемами (и решаете их), созданными обходным путем, либо тратите дополнительное время, пытаясь предотвратить проблемы (если вы не игнорируете оба этих ключевых момента). проблемы будут, на самом деле они будут происходить несмотря ни на что).
Ramhound
3
@greengit Очевидно, что это будет зависеть от того, что все вовлечено в ваш процесс, но в моем случае мне потребовалось менее 5 минут в день, чтобы проверить сторонние файлы. Это было мое решение - тратить время впустую, пытаясь разработать процесс и обучить его третьей стороне.
Алан Барбер
Это не должно быть так сложно. Один человек - это интерфейс от писателей к системе контроля версий. Они знают, чтобы представить все свои изменения ему. Не следует занимать у него больше минуты или двух, чтобы отбросить их изменения и зафиксировать их.
Дэн Рэй
@greengit - это будет мой ответ. Да, это заняло бы время, чтобы сделать полезную работу. Написание собственной системы (которую вы, похоже, очень хотите) займет больше времени. И писатели все равно будут жаловаться.
Майк Баранчак
18

SparkleShare - это клон dropbox -клона, я думаю, что он соответствует вашим потребностям.

SparkleShare создает специальную папку на вашем компьютере. Вы можете добавить удаленно размещенные папки (или «проекты») в эту папку. Эти проекты будут автоматически синхронизироваться как с хостом, так и со всеми вашими коллегами, когда кто-то добавляет, удаляет или редактирует файл.

... вот несколько примеров того, что он делает хорошо и менее хорошо с улыбающимися лицами:

большой

  • Часто меняющиеся файлы проекта, такие как текст, офисные документы и изображения
  • Отслеживание и синхронизация файлов, отредактированных несколькими людьми
  • Возврат файла в любой момент его истории
  • Предотвращение слежки за вашими файлами на сервере с использованием шифрования

Не так здорово

  • Полные компьютерные резервные копии
  • Хранение вашей фотографии или музыкальной коллекции
  • Большие двоичные файлы, которые часто меняются, например, проекты редактирования видео ...

Обновление (ноябрь 2015 г.) : проект, похоже, заброшен (последний выпуск от апреля 2014 г.).

комара
источник
Очень перспективно, но, возможно, немного незрелым. Я обязательно буду следить за этим, хотя.
Жолт Тёрёк
13

Если вы можете предоставить готовое рабочее пространство с прозрачным использованием VCS, они будут использовать VCS. Не учите непрограммистов использовать VCS способом программиста

Просто найдите редактор со встроенной VCS-поддержкой, настройте его и покажите дополнительные простые шаги в своих работах.

Просто пример - Editplus знает о Subversion, имеет возможность выполнять основные операции SVN внутри окна редактора. Последний Editplus даже может использовать TortoiseGIT для Git-интеграции

Редактирование : найдено альтернативное решение: EasySVN , который при правильной настройке отслеживает рабочую копию и выполняет автокоммит и автоматическое объединение, позволяя использовать любой инструмент разработки для конечного пользователя и любых форматов документов.

Ленивый Барсук
источник
11

Как насчет настройки WebDAV ?

Он будет автоматически обрабатывать прямую историю версий для них. Все, что им нужно сделать, это подключиться к серверу, как если бы это был сетевой диск, и каждое сохранение будет коммитом.

Malfist
источник
+1 за WebDAV. На самом деле не думал об этом варианте. Как вы думаете, насколько сложно будет развернуть и поддерживать сервер WebDAV (+ рабочий процесс)
древовидный кодировщик
Это действительно просто, вы настраиваете Apache, Subversion, репо. Затем вы устанавливаете модуль Apache и настраиваете его, и все готово.
Malfist
-1 потому что «автоматически» это не слово.
dreftymac
4
@dreftymac en.wikipedia.org/wiki/Hair-splitting
SplinterReality
1
Возможно, вы можете сделать этот ответ более четким: настройте Subversion + Apache + WebDAV на сервере и подключите общий ресурс WebDAV от клиентов, не являющихся разработчиками. Скажите пользователям, чтобы они сохраняли свою работу на общем ресурсе WebDAV хотя бы раз в день.
января
7

Гугл документы

Документы Google могут делать то, что вы хотите. File > See Revision Historyпозволит вам отслеживать изменения.

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

Наконец, это легко использовать; авторам даже не нужно знать, что происходит версионирование.

Натан Лонг
источник
6

ОС Агностик

Напишите программу на языке Python , который вы можете перетащить файл на, что программа может сделать git addи , git commitа что нет , и они никогда не должны иметь дело с ним.

или же

Используйте основанную на WebDav файловую систему, которую вы можете смонтировать на их машине, и пусть сервер сделает gitвсе прозрачно.

OSX / Linux

Напишите плагин FUSE на основе Python, который берет файлы и фиксирует их в git. Затем они могут просто открыть и сохранить из смонтированной файловой системы прозрачно. Есть некоторые ресурсы FUSE для Windows , но, вероятно, их даже не стоит обманывать.

Windows

Вы могли бы написать некоторый код, чтобы использовать драйверы фильтра FileSystem для прозрачной gitработы.

user7519
источник
5

Ах, радости не-кодеров Я бы посоветовал создать для них git / mercurial среду. Скажите им, чтобы сохранить все в формате, который может обрабатывать репо. С tortoisegit или tortoisehg им не нужно знать, как работает репо. Они просто проверяют, есть ли в каталоге проекта восклицательный знак, щелкают правой кнопкой мыши по файлу-нарушителю и нажимают кнопку фиксации. Напечатайте краткий обзор изменений (они писатели, верно?), И все готово!

Дополнительный шаг в рабочем процессе для них, но ничего о слиянии / ветвлении / классных вещах. Предварительно скомпилированная среда уже настроена так, чтобы находиться в ветке writers, поэтому они не видят код. Имейте скрипт, автоматически синхронизирующий их каждый день. Позже, после того, как они привыкли совершать, вы можете показать им дополнительные функции. Возможность увидеть, что изменилось, когда настолько полезна, что они не смогут без нее обойтись, как только вы включите это в свой рабочий процесс.

Спенсер Рэтбун
источник
5
Я пришел к выводу, что все (YMMV) нетехнические авторы просто считают свою предыдущую работу бесполезной, как только они вносят в нее какие-либо изменения. Они думают, что обновленная работа (статья или что-нибудь, что они пишут) лучше, и глупо сохранять ее прошлые версии. Хотя в нашем случае мы, по крайней мере, успешно объяснили им, почему нам также нужна история.
Treecoder
@ грингит возможно. Если вы продемонстрируете, как вы приспосабливаете их к руководству, как этот простой и легкий шаг помогает вам и как это экономит / зарабатывает деньги компании, тогда им все равно придется это делать. Бизнес руководствуется практическим результатом, поэтому скажите боссу, что это интегрирует авторов в технический конвейер и экономит деньги на затратах на интеграцию, резервном копировании (вы делаете резервную копию репо, верно?) И передаче информации.
Спенсер Рэтбун
+1 Мы также настроили наших координаторов проектов и специалистов по обслуживанию клиентов для использования TortoiseSVN. После первоначального объяснения (и оказания им помощи при первоначальной проверке) у них не возникло проблем с передачей измененных версий (в основном офисных документов и изображений макетов). Им даже понравилось, что они автоматически получат последнюю версию, если коллега что-то изменит.
Слеське
3

Как насчет Share Point? Я знаю, что это не популярно в мире разработки, но если ваши авторы используют Windows в качестве ОС, она будет работать хорошо, и они не будут знать, что они используют контроль версий (большой плюс для моей работы).

Это решение также не дает им иметь дело со всем, что может их сильно напугать, так как кажется, что они пугливы в отношении новых вещей.

JustinDoesWork
источник
+1, так как это то, что наша команда уже делает, и это работает.
sq33G
Я предпочитаю работать с правильной системой контроля версий для SharePoint, где есть часть документации нашей компании, потому что загрузка новых версий в SharePoint требует больше работы.
Крис Морган
2

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

Если вы поместите его в общий сетевой ресурс, вы можете выполнить всю настройку, не привлекая их вообще; но каждый раз, когда они предоставляли обновленную версию для вашей команды, она добавлялась в git для вас.

Дэн Нили
источник
1

Вы смотрели на пластик СКМ. Они пытаются сделать его проще в использовании

Если вы просто хотите создавать резервные копии с версионной версией, вы можете использовать Dropbox или настроить службу резервного копирования Windows. Или вы можете установить Crashplan или другой подобный продукт.

Амала
источник
+1 за указание мне на новое коммерческое предложение в сфере DVCS
Роланд Тепп
1

Для Mercurial DVCS существует пользовательский интерфейс EasyMercurial , чья заявленная цель явно состоит в том, чтобы предоставить простое представление об основных операциях управления версиями.

EasyMercurial предназначен для:

  • прост в обучении и изучении показа фактического состояния хранилища, используя представление графа истории
    • узнаваемо близок к обычному рабочему процессу командной строки для Mercurial, согласованному на разных платформах

Мы не пытаемся производить «лучший» клиент Mercurial для какой-либо одной цели. Мы активно поощряем пользователей переходить к другим клиентам по мере развития их потребностей. Цель состоит в том, чтобы просто предоставить что-то доступное для начинающих в небольших проектных группах, работающих с общим удаленным репозиторием.

Я бы порекомендовал попробовать.

Лорен Хольст
источник
1

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

  1. Представьте, что они программисты, попробуйте научить их, как использовать контроль версий. Это не сработает, и у вас будут постоянные бои.
  2. Напишите им очень простой инструмент, который просто берет текущую версию и прикрепляет ее куда-нибудь, чтобы они могли перемотать на вчерашние файлы, если это необходимо. Это возможно, и я сделал это для команды создателей DVD (создающей меню, графику, всевозможные вещи) много лет назад с некоторым успехом: инструмент, который я написал, был упаковкой в ​​один клик для PkZip (вы можете видеть, что это было некоторое время назад) и он просто заархивировал рабочий каталог и назвал архив для даты + время.
  3. Возьмите под контроль то, что они производят сами. Дайте понять, что их файлы должны быть доставлены программисту и стать частью проекта только тогда, когда программист принимает файлы: программист затем проверяет их в системе управления версиями и управляет контентом на профессиональном уровне.

Лично я думаю, что вариант 3 - это путь. Это означает некоторую боль и раздражение для тех, кто должен взять доставку файлов и проверить их, но намного меньше, чем любой другой вариант.

Я также сказал бы, имейте в виду, что непрограммисты будут доставлять файлы с любым старым именем файла, о котором вы только можете подумать. Соглашения об именах странным образом чужды им. Они дадут вам файл с именем «Изображение» или что-то в этом роде, а затем, когда вы скажете им, что с ним что-то не так, вы получите файл с именем «Picture_Final», который содержит только 3 ошибки. Когда вы укажете на это, вы получите другой файл с именем «Picture_NewFinal», а затем (если вам повезет) «Picture_NewFinal2», хотя вполне возможно, что в этот момент они отбросят любое чувство исторического развития и назовут его «Spanner Icon». вещь".

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

Надеюсь, что это помогает - веселиться!

AAT
источник
0

Если есть вероятность, что двое из них должны работать над одной и той же целью одновременно И если вы можете справиться со всей их работой в текстовых файлах, я бы попробовал использовать общие документы Google.

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

Но это два довольно больших случая.

Билл К
источник
0

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

Один раз в день (или неделю и т. Д.) Копируйте содержимое этой папки в backup_dd_mm_yyyy. Исходный код большинства систем занимает тривиальное количество места, учитывая пространство, доступное в наши дни.

Копия может быть сделана вами, ими, третьей стороной, инструментом или сценарием.

Это ограничивает потери одним днем, дает историю, прозрачна для них.

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

Майкл Даррант
источник