Как мне сохранить файл в OpenOffice, чтобы он не был двоичным файлом в Subversion? - PullRequest
5 голосов
/ 24 апреля 2009

Я работаю над документом Open Office с партнером, и мы используем Subversion для совместной работы над ним. Тем не менее, мы сохраняем документ как файл .odt, а Subversion читает его как двоичный тип файла. Поэтому меня беспокоит то, что когда мы пойдем на слияние файлов, и появится всплывающее окно, мы не сможем адекватно выполнить слияния, если возникнут конфликты; мы не сможем понять необработанный файл .odt.

Итак, мой вопрос: «Как сохранить документ в Open Office, чтобы он сохранил все ожидаемое и желаемое форматирование, но сохранил его как двоичный файл и, следовательно, его можно легко объединить?»

Или я использую неправильный метод для этого? (Что более чем вероятно)

Ответы [ 7 ]

13 голосов
/ 24 апреля 2009

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

Помимо LaTeX или просто хранения текстовых документов, установка блокировки файла с помощью Subversion - ваш лучший выбор.

7 голосов
/ 24 апреля 2009

Для сложных двоичных форматов файлов (из которых .odt один) я обнаружил, что это хорошая идея - использовать блокировку в Subversion и не пытаться объединять изменения. Установите для файла свойство Subversion svn:needs-lock, после чего вам потребуется запросить блокировку файла перед его редактированием (см. Блокировка в книге Subversion для получения дополнительной информации). В моей ситуации это хорошо сработало, но от вашего уровня сотрудничества зависит, будет ли оно работать для вас.

6 голосов
/ 19 мая 2009

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

TortoiseSVN может различать документы Word, и это очень удобно. Очевидно, он тоже может слиться, хотя я никогда не пробовал этого. Я думаю, что он может различать и объединять документы OpenOffice, но я никогда не пробовал.

TortoiseSVN может "сортировать" разные документы Excel, но это не очень удобно для использования. Нет слияния.

В моей компании мы устанавливаем svn: needs-lock в документах Word и Excel, чтобы избежать проблем слияния. Даже тогда я нахожу очень удобным иметь возможность просматривать предыдущие ревизии и видеть, что изменилось.

4 голосов
/ 24 апреля 2009

Файлы .odt являются XML-файлами AFAIK. Однако даже если бы вы сохранили их как разархивированный XML, я серьезно сомневаюсь, что вы могли бы сделать слияние чего угодно, кроме самых маленьких изменений.

1 голос
/ 24 апреля 2009

Объединение сложной страницы будет проблемой, так как Subversion не сможет сделать хорошую работу.

Блокируя, только один человек может работать с ним одновременно.

Вы можете каждый раз сохранять его как HTML-страницу, если вам не нравятся предложения LaTex или .txt.

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

1 голос
/ 24 апреля 2009

Формат .odt на самом деле представляет собой формат файла zip (в большинстве случаев), который упаковывает ваш документ и, возможно, другие двоичные ресурсы. Тот факт, что это zip-файл, означает, что он изначально двоичный. Возможно, есть способ сохранить документ в текстовом формате XML с использованием OpenOffice, я не уверен.

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

0 голосов
/ 13 июня 2009

Сложные машинные файлы всегда будет трудно объединить в системе контроля версий, даже , если они хранятся в виде текста. Что, если это был несжатый XML OpenOffice.org? Внесенное вами простое изменение приведет к изменению множества строк в файле XML, что приведет к возможным конфликтам.

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

Существует множество редакторов, которые поддерживают этот язык разметки, но вам, возможно, придется немного изменить рабочий процесс. Например, есть скрипт преобразования ODT в txt , который преобразует ODF в txt с форматированием уценки. Кроме того, pandoc может конвертировать между многими форматами, такими как Markdown и ODF.

Так что есть два варианта:

  1. Переключитесь на редактор, который напрямую поддерживает Markdown (подойдет простой текстовый редактор, но вы можете перейти на более продвинутый текстовый редактор с режимом Markdown, например Режим VIM Markdown )
  2. Вставьте шаг конвертации между Markdown и OpenOffice.org форматом. (сначала проверьте жизнеспособность)
...