Альтернативи професійному контролю версій [закрито]


57

Ми об'єднуємось з деякими непрограмістами (сценаристами), яким потрібно внести свій внесок у один із наших проектів.

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

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

Я придумав кілька ідей ...

  • скажіть їм, щоб вони зберігали свою роботу як окремий файл щоразу, коли вони вносять якісь нетривіальні зміни, а потім використовуйте diff з нашої сторони, щоб просто відстежувати зміни.
  • написати програму (на Python), яка певним чином реалізує "основні етапи" в CSSEdit.

Про проект:

Це природна система обробки мови (написана на C + Python). Ми найняли деяких авторів, які готували матеріали для різних мов. І коли ми розвиваємо програмне забезпечення, нам потрібні будуть ті автори, щоб внести зміни у свої матеріали (статті). Іноді зміни дуже малі (слово-два), а в інший час великі.

Причина, що нам потрібно контролювати версії цих змін, полягає в тому, що кожна невелика / велика зміна входу може потенційно змінити вихід системи.


15
@rwong - або вікі з версією, яка також може працювати.
Joris Timmermans

4
Додаючи до коментаря @MadKeithV, як щодо вікі з git? github.com/github/gollum - Деякі зміни в робочому процесі збираються внести, ви намагаєтеся з'єднати дві команди. Ви вивчали їх сучасні інструменти? Є невелика можливість, що вони підтримують певний контроль над версіями, і ваші письменники ніколи не
намагалися це

20
Це дійсно просто. Якщо ви збираєтеся платити цим людям, скажіть їм, що вони можуть користуватися вашими інструментами і отримувати гроші, або якщо вони відмовляться користуватися вашими інструментами, не отримуватимуть оплати. Будь-яка середня частина означатиме більше роботи на вашому кінці, оскільки це коштує грошей, і це врівноважує пошук групи людей, які працюватимуть з вашими інструментами.
Рамхаунд

4
Fossil - це цікавий VCS, який також постачається з розробленою Wiki. Ми використовували його як спосіб оновлювати документи, але ви можете використовувати його для "версії" таких речей.
Бен Брокка

34
ЧОМУ ви намагалися запровадити філії та об'єднатись із нетехнологіями? Ви хочете, щоб їхня робота була впорядкована, добре. Ви можете сказати їм, як ви хочете, щоб це було збережено. Ви хочете, щоб вони обробляли гілки і зливались, ви йдете з глибокого кінця. Ви повинні були дістати їм щось приємне і легке, як Черепаха *, і уникати говорити їм все, що їм насправді не потрібно.
Девід Торнлі

Відповіді:


102

коли я вперше познайомив їх із розгалуженням та злиттям - вони виглядали так, що я їх ображаю

Це, мабуть, тому, що розгалуження та об'єднання - це вдосконалені поняття, і нескінченно менш корисні, ніж просто слідкувати за змінами.

То чому б не пояснити просто "фіксація" (збереження) та "оновлення"? Дві дійсно прості концепції. Я впевнений, що ви можете пояснити це менш ніж за 10 хвилин.

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


20
+1. Для їх цілей просто ведення історії прямолінійних є радикальним і зміною ігор. Я думаю, що навряд чи письменнику дійсно знадобиться розгалуження та злиття, і якби вони це зробили, їм би потрібна рука демона, поки вони впоралися з цим.
Дан Рей

7
@BillK, ти насправді намагався злитися з git? Я думаю, що це працює досить добре, набагато краще, ніж зі SVN. (Я все ж не виступаю за використання об’єднання там, де це не потрібно.)
svick

10
@Bill K Чесно кажучи, це звучить так, що вам потрібно зробити кілька наздоганяючих після 20 років на SVN (якщо навіть). Розгалуження та об'єднання можуть справді не мати сенсу для цих авторів, але я не впевнений, як вам вдалося запрограмувати 20 років, не розгалужуючи репо. Є так багато випадків, коли гілки є хорошою практикою і полегшують ваше життя; насправді сліпо відкидаючи цю концепцію, свідчить про погану оцінку (ІМХО). У розгалуженні SVN був біль, але з git все стало дуже просто. Зробіть собі прихильність, здолайте своє его та вкладіть день, щоб вивчити основи git. Ви не пошкодуєте, обіцяно!
Робін

6
@ user606723: TortoiseSVN та TortoiseGIT пропонують інтеграцію оболонок Windows.
Рой Тінкер

6
Я майже впевнений, що намагання навчити гіт розгалуження та злиття з нетехнологіями - це порушення прав людини.
Стів Беннетт

69

Досить неортодоксальним підходом було б просто використання Dropbox . Запропонуйте авторам зберегти файли в папці, що випадає, і ви отримаєте версію та резервну копію безкоштовно. Плюс до того, що для авторів крива навчання в основному відсутня.

Що стосується git, це виглядає так, як врешті-решт, ви все-таки надасте авторам правильні версії гілок, так що просто покладіть git repo в падіння і обробіть розгалуження та злиття для авторів.


21
Я збирався запропонувати те саме. Немає причин, чому ви також не можете зробити папку в Dropbox git repo (їх не потрібно знати) і робити періодичні (наприклад, щоденні) вчинення. Таким чином ви отримуєте всі приємні речі з git (розрізнення, журнали, бісектриси тощо) безкоштовно.
Саймон Уітакер

4
Переконайтеся, що ви користуєтеся платною версією, оскільки безкоштовна версія зберігає версії протягом ~ 30 днів, якщо я правильно пам'ятаю.
DMan

5
Я можу лише -1 відповідь, яка пропонує зовнішню службу, вводить єдину точку відмови і ставить ваші дані на милість потенційних зловмисників, коли тут існує стільки корисного програмного забезпечення, яке пропонується в інших відповідях, і залучені сторони явно представлені як здібні програмісти.
sam hocevar

4
@DavidThornley: ви не чули про актуальні проблеми безпеки з Dropbox ???
sam hocevar

3
@Sam Hocevar: Гаразд, зараз у мене є. Це було чотири години вразливості, що, звичайно, не добре, але не обов'язково означає, що це погана ідея. Знову ж таки, це залежить від того, наскільки чутливо написане, і якщо невеликий шанс, що його могли побачити сторонні люди, прийнятний. (Це, очевидно, не підходить для медичних записів, але я не маю ніяких труднощів щодо того, щоб залишити там погану фантастику та незавершені програмні проекти.)
Девід Торнлі

28

Відповідь правдиво є у вашій редакції: "Ми найняли деяких письменників" - іноді вам просто до душі ... вони хочуть, щоб ваші гроші мали робити те, що ви хочете, якщо те, що ви хочете, не є нерозумним.

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

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

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


Я повністю з вами згоден. Але ви бачите, що між нами (командою програмістів) і письменниками є щось, що називається "управління". Керівництво найняло письменників і сказало нам працювати з ними. Те, що вони неохоче вивчають контроль над версіями, - це те, що менеджмент розглядає як проблему, потрібно «коригувати» між нами (командою) та ними (програмістами).
treecoder

1
Я якось здогадувався ... але тоді ви повинні передати свою справу керівництву, і це той самий випадок. Вони мають рацію, що це щось, що потрібно "скорегувати" (цікавий вибір слова) - але компроміс - це двостороння річ, ви повинні дати їм щось, з чим вони можуть працювати, вони повинні з цим працювати.
Мерф

Yay - downvote без пояснень, завжди так само.
Мерф

2
@greengit Проблеми, які потрібно "налагодити" між командами, є частиною того, для чого призначено управління. Делегування відповідальності перед однією командою є ледачим, або, можливо, натяком на те, що керівництво віддасть перевагу підходу цієї команди. Тож я б запропонував вам запропонувати керувати рішенням, яке має для вас більше сенсу, і нехай вони турбуються про все інше.
янніс

3
У мене є тенденція представляти ці "коригування" керівництву у вигляді бюджету для запропонованих ними змін. "Звичайно, ми можемо уникнути їх використання (git, ...). Для цього нам потрібно найняти секретаря. Підпишіться тут, і я розпочну співбесіду в понеділок".
BRPocock

18

Мені доводилося стикатися з подібною ситуацією, як це раніше. Врешті-решт ми просто вказали одного розробника (мене) як контактну точку контролю версій для третьої сторони.

Третя сторона надсилає мені щоденно поштовий файл своїх файлів проектів, і я б робила для них реєстрацію. Я встановив для них окремий робочий простір проекту та svn-акаунт, і розпакував би файли в цю робочу область, перезаписавши те, що там було, а потім зробити реєстрацію під цим обліковим записом.

Це не найсмішніше робити щодня, але іноді важливіше просто виконати роботу.

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


+1 Якби це було можливо, це було б "проблемою вирішено!" для нас. Це не тому, що ми невелика компанія, і я не думаю, що пропозиція пощадити одного розробника частково або виключно для цього завдання не поверне мені посмішок від (ідіотичного) управління. Дійсно, я так думаю про наше управління.
treecoder

2
@greengit - Якщо ви вважаєте, що це єдине рішення, яке, на вашу думку, спрацює, тоді витрати змушуватимуть наймати різних людей, які працюватимуть з вашими інструментами. Звичайно, ви можете пояснити керівництву, що будь-яке рішення, окрім контролю версій, БУДЕ ВАРТАТИ ГРОШУ або ви вирішуєте проблеми (і вирішуючи їх), створені навколо роботи, або витрачаєте додатковий час, намагаючись запобігти проблемам (якщо ви не ігноруєте обидва ці ключові моменти , проблеми будуть, насправді вони відбудуться незалежно від того).
Рамхаунд

3
@greengit Очевидно, це буде залежати від того, що все бере участь у вашому процесі, але в моєму випадку мені знадобилося менше 5 хвилин на день, щоб перевірити файли третьої сторони. Це було моїм рішенням зменшити втрату часу, намагаючись розробити процес і навчити третьої сторони на цьому.
Алан Барбер

Це не повинно бути таким важким. Одна людина - це інтерфейс між авторами та системою контролю версій. Вони знають подати йому всі свої зміни. Не потрібно йому більше хвилини чи двох, щоб змінити свої зміни на місці та здійснити їх.
Дан Рей

@greengit - Це була моя відповідь. Так, це займе час, щоб виконувати корисну роботу. Написання користувальницької системи (яку, здається, ви прагнете), зайняло б більше часу. І письменники все одно скаржиться.
Майк Баранчак

18

SparkleShare - це клонінг -клон на основі git, я думаю, він відповідає вашим потребам.

SparkleShare створює спеціальну папку на вашому комп’ютері. Ви можете додати до цієї папки віддалені розміщені папки (або "проекти"). Ці проекти будуть автоматично синхронізуватися як з хостом, так і з усіма вашими колегами, коли хтось додасть, видалить або редагує файл.

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

Чудово

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

Не такий великий

  • Повне резервне копіювання комп'ютера
  • Зберігання вашої фотографії чи музичної колекції
  • Великі бінарні файли, які часто змінюються, як проекти редагування відео ...

Оновлення (листопад 2015 р.) : Проект, здається, покинутий (останній реліз з квітня 2014 року).


Дуже перспективний, але, можливо, трохи незрілий. Я обов'язково буду стежити за цим, хоча.
Zsolt Török

13

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

Просто знайдіть редактор із вбудованою підтримкою VCS, налаштуйте його та покажіть додаткові прості кроки у своїх роботах.

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

Редагувати : знайдено альтернативне рішення: EasySVN , який, будучи належним чином налаштований, контролює робочу копію та виконує автокомісію та автоматичну автоматизацію, дозволяючи використовувати будь-який інструмент створення для кінцевого користувача та будь-які формати документа


11

Що з налаштуванням WebDAV ?

Він автоматично обробляє історію версій прямолінійних версій для них. Все, що їм потрібно зробити, це підключитися до сервера так, ніби це був мережевий диск, і кожен заощадження буде зобов’язанням.


+1 для WebDAV. Дійсно не думав про цей варіант. Як важко, на вашу думку, буде розгортати та підтримувати сервер WebDAV (+ робочий процес)
treecoder

Це дуже просто, ви налаштовуєте apache, subversion, repo. Потім ви встановлюєте модуль apache і налаштовуєте його, і все закінчено.
Мальфіст

-1 тому, що "автоматично" - це не слово.
dreftymac


1
Можливо, ви можете зробити цю відповідь більш явною: Налаштуйте Subversion + Apache + WebDAV на сервері та змонтуйте папку WebDAV від клієнтів, які не розробники. Скажіть користувачам зберегти, що вони працюють на веб-сайті WebDAV принаймні один раз на день.
січня

7

Документи Google

Документи Google можуть робити все, що ви хочете. File > See Revision Historyдозволить вам стежити за змінами.

Ви також отримали проблему з безкоштовною передачею файлів назад і назад; просто поділіться документом між усіма.

Нарешті, це просто у використанні; письменники навіть не повинні знати, що відбувається версія.


6

OS Agnostic

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

або

Використовуйте файлову систему на базі WebDav, яку ви зможете встановити на їх машину, і сервер робити це gitпрозоро.

OSX / Linux

Напишіть плагін FUSE на основі Python, який приймає файли та зобов’язує їх git. Тоді вони можуть просто відкриватися та зберігатись із змонтованої файлової системи. Є деякі ПОПЕРЕДЖЕННЯ для ресурсів Windows , але їх, мабуть, навіть не варто дурити.

Windows

Ви можете написати код, щоб використовувати драйвери фільтрів FileSystem для прозорого виконання цього завдання git.


5

Ах, радості некодерів, що глузують. Я б запропонував створити для них середовище git / mercurial. Скажіть їм зберегти все у форматі, з яким може працювати репо. З черепахом або черепахою їм не потрібно знати, як працює репо. Вони просто перевіряють, чи є в їхньому каталозі проектів знак оклику, клацніть правою кнопкою миші файл, який порушує праворуч, і натисніть кнопку "Здійснити". Введіть конспект змін (вони письменники, правда?), І все закінчено!

Додатковий крок у робочому процесі для них, але нічого про злиття / розгалуження / класні речі. Заздалегідь створене середовище вже створене для того, щоб бути у відділенні авторів, тому вони не бачать код. Попросіть сценарій автоматично синхронізувати їх щодня. Пізніше, коли вони звикли до вчинення, ви можете показати їм додаткові функції. Можливість бачити, що змінилося, коли настільки корисно, що вони не зможуть обійтися без цього, як тільки ви прокрадете їх у їх робочий процес.


5
Одне, що я зрозумів, - це те, що всі (YMMV) нетехнічні письменники просто вважають свою попередню роботу марною, як тільки вони вносять в неї будь-які зміни. Вони вважають, що оновлена ​​робота (стаття чи що-небудь, що вони пишуть) найкраща, і нерозумно зберігати попередні її версії. Хоча в нашому випадку ми принаймні успішно пояснили їх, чому нам також потрібна історія.
treecoder

@greengit можливо. Якщо ви продемонструєте, як ви їх влаштовуєте в управлінні, як цей простий і простий крок допомагає вам, і як це економить / заробляє гроші компанії, то їм доведеться це робити в будь-якому випадку. Бізнес ведеться в нижньому рядку, тому скажіть начальникові, що це інтегрує авторів у технічний конвеєр та економить гроші на витратах на інтеграцію, резервне копіювання (ви створюєте резервну копію репо, правда?) Та передачу інформації.
Спенсер Ратбун

+1 Ми також створили наших координаторів проектів та людей, що обслуговують клієнтів, щоб використовувати TortoiseSVN. Після первинного пояснення (і допомагаючи їм у початковій касі) у них не виникло проблем із залученням змінених версій (переважно офісних документів та зображень макетів). Їм навіть сподобалося, що вони автоматично отримають останню версію, якщо колега щось змінить.
sleske

3

А як щодо Share Point? Я знаю, що це не популярно у світових розробках, але якщо ваші автори використовують Windows як ОС, вона буде працювати добре, і вони не дійсно будуть знати, що вони використовують контроль над версіями (великий плюс для моєї роботи).

Це рішення також перешкоджає їм мати справу з чим завгодно, що їх би налякало, оскільки, здається, вони скупі в нових речах.


+1, оскільки це вже працює наша команда, і це працює.
sq33G

Я вважаю за краще працювати з належною системою контролю версій у SharePoint, де є частина документації нашої компанії, тому що завантаження нових версій у SharePoint вимагає більше роботи.
Кріс Морган

2

Чи можете ви налаштувати інструмент, який слідкує за файловою системою, куди письменники зберігають свої файли, і чи дозволяють вони робити автоматичне виконання кожного разу, коли вони роблять збереження?

Якщо ви розмістите його на мережевій папці, ви могли б виконати всю конфігурацію, не залучаючи їх взагалі; але кожен раз, коли вони надавали оновлену версію для вашої команди, щоб використовувати її, вона буде додаватися до git для вас.


1

Ви подивилися на Plastic SCM. Вони намагаються зробити його простішим у використанні

Якщо ви просто хочете розробити резервні копії, ви можете використовувати Dropbox або налаштувати службу резервного копіювання Windows. Або ви можете встановити Crashplan або інший подібний продукт.


+1 за вказівку на нову комерційну пропозицію у царині DVCS
Roland Tepp

1

Для Mercurial DVCS існує інтерфейс користувача під назвою EasyMercurial , метою якого є явне надання простого перегляду основних операцій управління версіями.

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

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

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

Я рекомендую спробувати.


1

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

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

Особисто я думаю, що варіант 3 - це шлях. Це означає деякий біль і роздратування для тих, хто повинен прийняти файли доставки та перевірити їх, але набагато менше, ніж будь-який інший варіант.

Я б також сказав, майте на увазі, що непрограмісти доставлять файли з будь-яким старим іменем файлу, про яке ви можете придумати. Конвенції про іменування їм дивно чужі. Вони дадуть вам файл під назвою "Зображення" або щось подібне, і тоді, коли ви скажете їм, що з ним не так, ви отримаєте файл під назвою "Picture_Final", який має правильну інформацію про 3 помилки. Коли ви це вкажете, ви отримаєте ще один файл, який називається "Picture_NewFinal", а потім (якщо вам пощастить) "Picture_NewFinal2", хоча можливо, що в цей момент вони вирвуть будь-яке відчуття історичного розвитку і назвуть його "Spanner Icon річ ».

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

Сподіваюсь, що допомагає - веселіться!


0

Якщо є ймовірність, що двом з них потрібно працювати над однією і тією ж ціллю відразу І якщо ви можете впоратися з усією їх роботою в текстових файлах, я б спробував спільні документи Google.

Він має дивовижну можливість редагування / співпраці - на сьогоднішній день найкраще, що я бачив. Вони також мають повну версію і можуть бути експортовані у текстові файли.

Але це два досить великих ifs.


0

Нехай вони працюють у папці, зберігаючи файли, як зазвичай.

Раз на день (або тиждень тощо) копіюйте вміст цієї папки в backup_dd_mm_yyyy Вихідний код більшості систем займає тривіальну кількість простору, враховуючи простір, доступний в ці дні.

Копія може бути зроблена вами, ними, стороною стороною, інструментом або сценарієм.

Це обмежує втрату до одного дня, дає історію, є прозорою для них.

Не ідеально підходить ні для однієї зі сторін, але відповідь, яка прагне пробити середнє місце.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.