2012-10-23 94 views
6

我意外地向我的perforce服務器提交了錯誤的更改列表。然後,我使用「退出更改列表」選項退出該更改列表。但是,這兩個更改出現在所有受影響的文件的歷史記錄中,他們曾被刪除,然後再次添加回來。從perforce歷史中刪除已提交的更改列表

我希望能夠從perforce服務器中刪除這兩個更改列表的歷史記錄。可能嗎。它可以通過一些Perforce管理員命令完成。

編輯:我看過p4 change -d -f可以刪除更改列表,但這需要使用p4刪除更改列表中的文件。這是否意味着我必須刪除所有受更改列表影響的文件。這對我來說似乎不是一個可行的解決方案,因爲我不想刪除這些文件。我是否應該僅刪除由於提交的兩個更改表而導致的這兩個文件的具體修訂?

回答

5

您的執行管理員可以撥打p4 obliterate來徹底清除文件,修訂和歷史記錄。 但我強烈建議不要這樣做。回滾文件/更改並查看歷史記錄是非常正常的事情。

如果您仍然決定使用p4 obliterate,請確保您先不帶「-y」選項(預覽)調用它,然後(如果perforce所說的將會發生的輸出是確定的)調用相同的命令與「 -y「選項(實際執行刪除操作)。

如果您使用文件修訂版(例如p4 obliterate //depot/dir/file#5)致電p4 obliterate,那麼只有該修訂版的更改和歷史記錄將被刪除,並保留以前的所有修訂版和歷史記錄。您也可以刪除修訂範圍。

+0

實際上,錯誤更改列表幾乎影響到每個文件,因此幾乎所有文件的歷史記錄都已損壞。這就是爲什麼我不希望回滾出現。我是否必須爲受影響文件的所有修訂調用「p4 obliterate」,或僅修改那兩個特定修訂版(由於這兩個違規修改列表) – Neal

+1

恕我直言,沒有回滾證明調用「p4 obliterate」。這是非常正常的事情。如果你仍然認爲你需要它,你必須爲更改列表中的所有文件調用「p4 obliterate file#rev」。添加「-y」選項來實現它(只需運行測試即可將「-y」刪除)。 – pitseeker

+0

非常感謝您的幫助。我明白,做一個「p4抹去」似乎不合邏輯,但我仍然想這樣做。那麼,我只需要刪除由於錯誤更改列表引入的文件的修訂版本,而不是刪除整個文件?我理解它嗎?我只是要求確認。 – Neal