Чи слід використовувати Git для документації та управління проектами? Чи повинен бути код в окремому сховищі?


68

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

Ось короткий опис моїх питань:

  • Чи буде стиль редагування Git заплутаним, якщо і код, і документи перевіряються в одному сховищі ? Досвід з цим?

  • Чи добре підходить Git для контролю перегляду документації?

  • Я НЕ запитую, чи Система контролю ревізії взагалі повинна або не повинна використовуватися для документації - вона повинна.

Дякуємо за відгук поки що!


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

1
Я не зовсім бачу, як це на тему. Ви говорите про документацію щодо програмного забезпечення та вчинення зобов'язань із DVCS
Tim Post

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

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

Відповіді:


53

Ми постійно зберігаємо документацію у SVN. Насправді весь наш посібник користувача написаний у LaTeX та зберігається у SVN. Ми вибрали LaTeX спеціально, оскільки це текстова мова, і легко показувати, що рядки за рядком відрізняються.

Ми також зберігаємо деякі неформатні формати, наприклад файли Microsoft Office .doc, розкладені аркуші, .zip файли тощо, коли це необхідно ... але частина користі RCS втрачається, коли ви не бачите інкрементального відрізняється.

Головне - переконатися, що ваша документація добре організована, щоб люди могли знайти (та оновити) документацію (та джерело), ​​коли вони потребують.


11
Якщо ви є магазином Microsoft, TortoiseSVN підтримує MS Office по черзі.
Філ

2
Скасування бінарних форматів документа зробить світ кращим. o з огляду на те, що документи є текстовими текстами, і з DVCS не повинно виникнути реальних проблем.
Кай Інкінен

О, і я вперше почув про TortoiseSVN та doc файли, тож +1 для цього. Цікаво, чи не закінчиться це в черепаху [AnyDVCS] будь-коли в майбутньому.
Кай Інкінен

@Phil: Як TortoiseSVN це досягає? Чи інтегровано переглядач doc-diff з клієнтом SVN, чи його можна використовувати самостійно?
Flimzy

1
Класним варіантом було б використання Pandoc, щоб більша частина вашої документації знаходилась у Markdown, але найважливіші біти все ще можуть використовувати TeX. Оскільки він компілює Markdown до LaTeX, результати виглядають однаково. Однак це також дозволить експортувати його в різні формати і полегшить читання джерела.
Тихон Єлвіс

22

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

Git також може зберігати бінарний вміст і ви можете відстежувати версії, але різний вихід не матиме сенсу.

Також можливо зберігати документацію в самому коді, як perldoc pod, java також має для цього певний формат / анотацію.


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

Я хоч Word перемістив їх формат від бінарного до XML.
cledoux

3
@ karategeek6 Формат "XML" слова не читабельний для людини. І один рядок тексту не відповідає одному рядку XML Word навіть у наближенні. Тож це може бути і двійковим.

Ви можете доручити Word зберегти свій вихід у нестисненому XML. Виберіть Save As, а потім виберіть Word XML Document (*.xml)замість типового Word Document (*.docx). XML досить складний, тому це не є гарантією, що зміни будуть легко читабельними, але принаймні вони не будуть двійковими.
Kyralessa

> але різний вихід не матиме сенсу. У випадку різниці, ми можемо відкрити 2 редакції документа поруч і порівняти поглядом :)
Лука

14

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


6
Тільки якщо документація є текстовою формою. Бінарні краплі не повністю користуються контролем версій.

2
@ ThorbjørnRavnAndersen: Тим не менш, якщо у вас немає бінарної системи версій, можливо, краще зберігати навіть бінарні файли в Git, а не самостійно.
Тихон Єлвіс

@TikhonJelvis Я не питав, чи є гарною ідеєю ставити бінарні файли в git - якщо вони є оригінальними артефактами, це так. Спробуйте, однак, запустити "git diff" на документах Word.

@ user1249: ви можете "експортувати" 2 версії на робочий стіл, скажімо, my_docs_rev15.docx та my_docs_rev14.docx відкрийте їх поруч і порівняйте своїми очима та мозку, це не так вже й складно :)
Люк

14

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


3
Так, аспект "того самого місця" є однією з ключових частин цього питання!

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

Вони можуть не потребувати доступу до коду, але їм це не завадить мати такий доступ. Вони не повинні на це дивитися. Секрети взагалі не повинні знаходитись у контролі версій.
bdsl

9

У компанії, на якій я працюю, ми складаємо документацію в SVN. Однак після кількох конфліктів і необхідності поділитися ним ми вирішили перенести його на Mediawiki.

Спочатку це було trac, після чого переїхало до Mediawiki, тому що його було легше використовувати ...

Основна проблема SVN полягала в тому, що ми мали систему авторизації для SVN.


2
Ви не маєте на увазі Mediawiki, вікі-движок, який використовує Вікіпедія?

@Martijn, я вважаю так
Тео Клеструп Röijezon

@Martijn: Так, відредаговано
confiq

Я б скоріше дотримувався вікі, а не надсилав багато файлів, які не належать до SCM, але це більше стосується особистих переваг. З цим можна зробити набагато більше. Мені особливо подобаються Foswiki та їх шаблон на основі веб-сайту / проекту. Радий, що хтось вказав, що вирішив використовувати вікі через проблеми :) +1.
Oeufcoque Penteano

9
  • Мати більше, ніж просто вихідний код у сховищі, - це дуже гарна річ.

    Він об'єднує всі ваші ресурси разом і перетворює проект у згуртовану, централізовану сутність, а не розсіяну колекцію файлів. Співробітники / працівники знають, де їх знайти, а не надсилати "Де я можу змінити документацію для функції x?" електронні листи.

    Ви хочете все організувати. Створити систему відокремлення srcвід imagesвід docs. Ви завжди можете додати a .gitignoreдо каталогу, щоб зберегти сховище та історію чистими. Оскільки Git-файли засновані на файлах, * ви можете від'єднати зміни джерела від змін документації так сильно, як вам подобається.

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

  • Я повністю згоден; Документацію слід узгоджувати прямо поряд із кодом.

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


* Це не зовсім точно, тому що є способи вказати частини файлу, які потрібно зробити ( ось один приклад ).


4

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

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


Різні гілки з радикально різними структурами каталогів мають дуже поганий запах коду. Я б це все залишив за один репо, полегшуючи дописувачам легше додавати суміш коду та документації. Насправді грамотне програмування (Google це!) Цього вимагає.
tbc0

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

1

Я використовую вікі для внутрішніх документів ... отримати редакцію PLUS видатного доступу / простого редагування. Коли документація не синхронізована, оновіть її тут і там. Для документації для кінцевих користувачів розгляньте такий професійний інструмент, як Madcap Flare. Вони використовують діалект XML для обміну, складання та перетворення документації.


-1

У коді думки, як правило, розділяються по черзі. Я схильний писати документацію з м'якими лініями обгортання. Коли я виконую ці файли, рядки є цілим абзацом. Це не дуже корисно читати в git diff. Це проблема, яку я намагався вирішити, коли переглядав Google і знайшов цю сторінку. Дякую Арну Хартерзу за те, що познайомив мене git diff --word-diff. Вам може сподобатися git diff --color-wordsще краще.

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