2012-08-03 30 views
1

我偶然發現an old blog post暗示了這一點,遺憾的是,這只是一個未實現的想法。這是否同時完成?如何實現? (聽說TortoiseGit可以這樣做,但我運行Linux)LibreOffice/OpenOffice合併工具可以用作`git-mergetool`嗎?

另一種也可能是重新壓縮方式提到here,提示git的過濾器,其跟蹤的未壓縮的開放文檔格式,並重新壓縮他們在結賬時,這將提供至少合併(和差異)xml內容而不是二進制垃圾(或有損odt2txt)的選項,但是我沒有發現此方法的任何更新,最後的post about this警告說這種方法存在潛在的缺陷。

+2

另一個選擇,至少與更新版本的Open/LibreOffice一樣,是不保存到壓縮文件類型 - 在另存爲對話框中,你可以選擇「Flat XML」(電子表格爲'.fods',文件爲'.fodt'等)。這些文件將會相當大,但會更合理地合併,因爲它大致等同於重新編碼方法,沒有太多複雜性。 – twalberg 2012-08-03 14:54:21

+0

@twalberg謝謝你的信息。與'--convert-to' [命令行參數](http://help.libreoffice.org/Common/Starting_the_Software_With_Parameters)一起,可以實現該過濾器,假設fod * <-> od *是可恢復的(取決於不相關的更改) 。 [如果只有這樣纔不需要Office關閉...](https://bugs.freedesktop.org/show_bug.cgi?id=37531) – 2012-08-03 15:16:05

+0

(注意自我:該錯誤可以通過' - env:UserInstallation = file:/// some/path') – 2012-08-03 15:38:21

回答

0

twalberg的啓發comment我寫了簡單的腳本od2fodfod2od使用Libre/OpenOffice的--convert-to參數來將壓縮的xml轉換爲未壓縮的xml,反之亦然。由於bug denying CLI actions when the LibreOffice GUI is running我不得不寫的解決辦法loInstance

#!/bin/bash 
tmpdir=$(mktemp -d) 
cp -rf ~/.libreoffice $tmpdir 
soffice -env:UserInstallation=file://$tmpdir [email protected] 
rm -rf $tmpdir 

od2fodfod2od很簡單,雖然:

#!/bin/bash 
loInstance --headless --convert-to f${1#*.} $1 

#!/bin/bash 
loInstance --headless --convert-to ${1#*.f} $1 

人們可以現在設置一個cleansmudge過濾器.gitattributes,但我注意到LO記錄了多餘的元數據剎車clean-smudge圈。所以目前這隻能作爲一個不完美的textconv工具git-diff ...

0

你可以試試,你會告訴我們。從我記得以來,合併工具被配置爲有4個輸入,因此您必須配置Git以將其用作合併工具。

你必須在配置文件中添加幾行,merge.toolmergetool.<tool>.pathmergetool.<tool>.cmd

http://www.kernel.org/pub/software/scm/git/docs/git-config.html(搜索頁面中的 「merge.tool」)

http://www.kernel.org/pub/software/scm/git/docs/git-mergetool.html

希望它可以幫助

+0

這對我來說並不是最重要的,這就是爲什麼我希望有人已經嘗試過了......但是,是的,_if_(可能寧願_when_)我自己這樣做,我會在這裏發表一個答案(該死的絕地詭計:-P) – 2012-08-03 13:25:04