2014-05-12 68 views
1

我們通過sourcetree將git用於涉及HP UFT對象存儲庫的項目。合併時忽略某些xml行

在我們的對象存儲庫文件中有一個日期行,它不會被git自動處理,所以每當兩個存儲庫被合併時,我們基本上需要選擇我們想保留的日期。日期本身從不使用,也不需要,並且存儲庫中每個對象都有一個日期(每個xml約爲50),所以這是一個令人討厭的任務。

有沒有辦法讓git忽略日期行?日期是否保持原來的狀態並不重要,這並不重要。或者讓git總是用新的日期覆蓋舊的日期。它看起來像這樣(挪威日期):

<qtpRep:LastUpdateTime>6. mai 2014 12:03:22</qtpRep:LastUpdateTime> 

對象倉庫文件創建的XML文件/通過UFT更新這意味着碼自動生成的,因此,這些文件中的日期的連續更新。

回答

1

你可以爲了用清晰的內容過濾器在a .gitattributes file

http://git-scm.com/figures/18333fig0703-tn.png

(從Pro Git Book

這將使自動git add,設置元素<qtpRep:LastUpdateTime>內容一個修復了的值而不是自動生成的值。

*.xml  filter=fixedDate 

git config --global filter.fixedDate.clean cleanDate 

在「乾淨」 fixedDate過濾聲明的腳本,這裏cleanDate,可以解析被添加的文件的內容,並通過固定更換的日期。

該腳本和.gitattributes可以存儲和分發到同一個git倉庫中,但所有用戶都需要激活篩選器才能在所有克隆倉庫中一致地使用該篩選器。

0

(我怎樣寫完整的評論?所有我設法與計算器的意見做是寫文字的單一連續線。)

我創建了一個信息庫,並增加了一個名爲.gitattributes與單個文件行:

*.xml filter=fixedDate 

然後我跑在cmd窗口如下:

git config --global filter.fixedDate.clean 'perl -pe "s/\\\$Date[^\\\$]*\\\$/\\\$Date\\\$/"' 

這隻返回的混帳配置選項。所以我認爲它運行正確?或者,git是否會返回選項而不是錯誤消息?

我然後推.xml文件具有以下內容:

$Date: 123$ 

該文件是在不改變內容的正常推動。

關於http://git-scm.com/docs/gitattributes的解釋並沒有多大幫助。

+0

該過濾器僅適用於'git commit'。如果你只是推,它不會清理任何東西。嘗試再次添加所有內容並提交,如http://stackoverflow.com/a/1511273/6309或http://stackoverflow.com/a/15646791/6309中所述。 – VonC

+0

我確實提交了,我不知道我可以推動沒有提交,所以我沒有提到它。 – user3627566

+0

好吧,嘗試一個新的提交,看看文件是否改變(然後如果是,那麼做一個'git push') – VonC