2009-04-24 60 views
5

我正在與合作伙伴合作開發Office文檔,我們正在使用Subversion進行協作。但是,我們將文檔保存爲.odt文件,並且subversion將其讀取爲二進制文件類型。因此,我擔心當我們合併文件和差異彈出時,如果存在衝突,我們將無法充分執行合併;我們將無法理解原始.odt文件。我應該如何在OpenOffice中保存文件,以便它不是Subversion中的二進制文件?

所以我的問題是「如何在Open Office中保存文檔,使其保留所有您期望和希望的格式,但不會保存爲二進制文件,因此可以輕鬆合併?」

或者我使用錯誤的方法來做到這一點? (這很可能)

+0

由於Opendocument使用壓縮的xml文件,就像今天通常用於辦公套件一樣,您將無法與subversion進行合併。 使用OpenOffice的功能來實現這一點。 – 2009-06-13 16:39:02

回答

13

儘管您可能討厭它,但LaTeX爲您提供了一種創建文檔的方式,但將它們作爲文本保存在文本中,這很容易合併。

除了LaTeX或只是保留txt文檔,使用Subversion在文件上設置Lock是最好的選擇。

+0

一旦你開始使用LaTeX,你不會再討厭它了...... – 2009-04-24 04:32:52

+0

現在考慮Latex ... +1 – 2009-04-24 04:41:54

7

對於複雜的二進制文件格式(其中.odt是1),我發現在Subversion中使用鎖定並不嘗試合併更改是一個好主意。在文件上設置Subversion屬性svn:needs-lock,然後在編輯文件之前需要先對文件請求鎖定(有關更多詳細信息,請參閱Subversion手冊中的Locking)。這在我的情況下運行良好,但這取決於您的協作程度,無論它是否適合您。

+0

一個很好的答案,所以+1,但我已經做到了,我真正想要的是讓一個文件在原始級別可讀的同時仍然播放主機到.odt文件中提供的格式。 (如果沒有辦法做我想做的事情,我會標記出答案) – 2009-04-24 04:26:23

4

.odt文件是AFAIK壓縮的XML文件。但是,即使你將它們保存爲解壓縮的XML,我仍然懷疑你可以合併除了最小的變化之外的任何東西。

+0

我會研究它,但我敢打賭你是對的。我不可能發現這些變化;至少我知道我現在在做什麼。感謝(AFAIK信息+1) – 2009-04-24 04:43:26

1

.odt格式實際上是一種zip文件格式(大多數情況下),它將您的文檔以及可能的其他二進制資源打包。它是一個zip文件,這意味着它本質上是二進制的。可能有一種使用OpenOffice以純文本XML保存文檔的方式,我不確定。

如果您確實需要合併更改的功能,則最好使用純文本格式。

1

合併複雜的頁面將是一個問題,因爲顛覆無法做得好。

通過鎖定,一次只能有一個人在上面工作。

如果您不喜歡LaTex或.txt建議,您可以每次將它保存爲html頁面。

您可以爲OpenOffice編寫一些插件,以允許協作工作。

6

只要供應商提供良好的差異和合並工具,文件就不一定是文本格式以進行區分和合並。只要VCS可以配置爲使用這些外部差異/合併工具。然而,爲專有文檔格式提供這種差異和合並工具卻很少見。

TortoiseSVN可以區分Word文檔,這非常方便。它顯然也可以合併,儘管我從來沒有嘗試過。我認爲它可能能夠區分和合並OpenOffice文檔,但我從未嘗試過。

TortoiseSVN可以「排序」不同的Excel文檔,但它不是很好用。沒有合併。

在我的公司,我們設置了svn:needs-lock關於Word和Excel文檔以避免合併問題。即使如此,我發現能夠區分以前的版本並查看更改的內容非常方便。

0

複雜的機器維護文件在版本控制系統中總是很難合併,如果它們以文本形式存儲,那麼甚至。如果它是未壓縮的OpenOffice.org XML?您做出的一個簡單更改將修改整個XML文件中的大量行,從而導致可能的衝突。

最好的辦法是使用更簡單的格式,例如Markdown,因爲簡單的格式導致更少的更改,從而導致更可靠的合併。許多作家使用Markdown,並且很容易學習。

有大量的編輯器支持這種標記語言,但您可能需要修改一下您的工作流程。例如,有一個ODT to txt轉換腳本,它將ODF轉換爲帶有降格格式的txt。另外,pandoc可以在許多格式之間轉換,如Markdown和ODF。

所以有兩種選擇:

  1. 更改爲直接支持降價的編輯器(一個簡單的文本編輯器會做,但你可以去用降價模式更先進的文本編輯器如VIM Markdown mode
  2. 在Markdown和OpenOffice.org格式之間插入轉換步驟。 (請確保首先測試可行性)
相關問題