我對使用Hg
沒有什麼可說的,但我想我會分享一些使用git
用於我的膠乳文件時的惱人問題(我認爲hg將表現相同)。
VCS最初可能是爲版本控制代碼設計的,通常每行都有一個語句。但是,使用膠乳和其他文本文檔時,寫一段完整的文本是很自然的,不需要將每一行分成單獨的句子。因此,段落中單詞的任何更改都會改變段落中所有其他跟隨單詞的位置,並且當您執行diff
時,它會顯示整個段落正在更改。當你有很多文字時,它變得煩人,你去修改,然後一切高亮!這裏有一個小例子:
\documentclass{article}
\begin{document}
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque blandit lacus aliquet eros tempus non tristique nisl consectetur. Sed orci odio, viverra quis rutrum eu, eleifend eget risus. Nam elementum tempus auctor. Nunc tincidunt dui et mauris varius faucibus ultrices nulla iaculis.
\end{document}
提供初步的承諾,使一個小的變化之後,這裏的diff
輸出:
我分不清什麼是我作出改變!解決方法是使用可選--color-words
,該選項只會突出顯示已更改的單詞。我通常將我的diff
設置爲默認使用此選項。你也許可以看看mercurial是否有類似的東西。
雖然混帳記錄了整個段落被改變,它只是強調了已被更改,這對我來說是足夠好的話。
備用解決方案需要對如何編寫膠乳文件進行小改動。考慮這個例子,從上面的例子中修改。
\documentclass{article}
\begin{document}
Lorem ipsum dolor sit amet, consectetur adipiscing elit.
Pellentesque blandit lacus aliquet eros tempus non tristique nisl consectetur.
Sed orci odio, viverra quis rutrum eu, eleifend eget risus.
Nam elementum tempus auctor.
Nunc tincidunt dui et mauris varius faucibus ultrices nulla iaculis.
\end{document}
這裏每個句子都有自己的一行。如果你編譯這兩個膠乳的例子,那麼在輸出中就沒有區別。這是因爲膠乳會在一段時間後自動放置一個空格,並忽略單個換行符。現在,當你在一行內進行更改並對其進行區分時,git將僅突出顯示該行而不是整個段落。這是我已經慢慢開始做的事情,儘管起初不能連續閱讀段落令人討厭。
非常感謝你 - 這確實有幫助。昨天晚上我已經下載了GUI MacHG並且玩了一下,但有點困惑:從你的回答中,我明白我可以將來自不同目錄(=公司)的文件添加到存儲庫。 Mercurial會知道(如果文件名是相同的),它應該比較那些在DIFF中具有相同名稱的文件?或者我可以(用這種方法)只跟蹤每個子目錄中的更改嗎? – MostlyHarmless 2011-05-27 07:54:07
@Martin:不,如果您在不同的目錄中添加相同名稱的文件,那麼它們之間沒有連接。請注意,我將這些文件複製到上面的一個目錄中。 – jmg 2011-05-27 08:03:43
啊,好的 - 這就是我已經認爲我必須做的。我將創建一個目錄,將這些文件放入,提交,用另一個版本(相同的文件名)覆蓋它們,然後再次提交......有沒有辦法在不同的子目錄中保存不同的版本?添加所有現有版本後,我將如何創建一個新的版本?我怎樣才能同時在不同的版本(公司)上工作? – MostlyHarmless 2011-05-27 08:24:08