簡體   English   中英

Subclipse SVN首次提交忽略某些目錄

[英]Subclipse SVN first commit ignore certain directories

決定從 CVS 跳到 SVN。

我在 subclipse 中為我的項目設置了一個新的存儲庫。 當我轉到“完成”設置時,它想要進行初始提交並向我顯示一個平面文件列表以選擇用於版本控制的文件。

問題是我有數千個我不想提交的生成的二進制文件。

所以我點擊取消,因為我需要一整天的時間來完成並取消選擇所有不需要的文件。 令人討厭的是,當我單擊要忽略的文件的父類別時,它不是遞歸的!

因此,我單擊取消,然后轉到項目的 eclipse 目錄結構,並在我想忽略的所有目錄上手動設置 svn:ignore。 然后我嘗試再次提交並再次顯示所有文件 - 忽略似乎什么也沒做。

誰能指出我可能做錯了什么?

對於第一次提交,我建議編寫一個小腳本來刪除(當然你會有一個備份)所有不打算提交的文件。

之后,如果你發現不小心提交了一個文件,你可以

svn delete file

在第一次簽出時,復制回(或者更好的是,重新生成)所有二進制文件。 這將觸發 svn 注意到您的本地存儲庫與遠程存儲庫不同步。

cd <Root of local repository>
svn status 

你會看到很多“待添加”的項目。 轉到父目錄並為每個生成的項目添加svn:ignore屬性。

cd build
svn propedit svn:ignore .

這將打開一個編輯器(如果沒有,您需要將環境變量 SVN_EDITOR 設置為合適的編輯器)。 然后你可以添加 svn 知道不會被跟蹤的條目。

(in the ignore property editor)

target
build
image*
*.o

(and so on)

保存文件,它將為下一次提交而暫存 svn status后續運行將不再將這些文件顯示為“需要添加”,但它們會將目錄顯示為“需要提交(這是對目錄的修訂)”

快速擱置

因此,我不完全確定您正在使用 Subclipse 的哪些功能來創建存儲庫並將項目共享給它,我假設您通過 Eclipse SVN 存儲庫視圖創建了一個基於文件的存儲庫,並嘗試共享和然后承諾它。 看起來你的問題已經解決了,但我確實想在這里添加一個答案,因為我在這篇文章中找到了處理初始提交的相同問題的答案,即使只是一般的 SVN 並希望為其他任何人提供幫助為了幫助。

介紹

首先,我建議不要僅在初始提交時使用這樣的 IDE 擴展,因為它們可能會錯過許多處理在 SVN 中打開存儲庫的選項。 我個人非常喜歡使用 SVN 的命令行形式,但 TortoiseSVN 是 GUI 的不錯選擇。

無論您是創建本地基於文件的存儲庫還是連接到 SVN 服務器,並且您希望更好地控制以前未版本化項目中的第一次提交,這是我發現的最佳通用工作流程。

創建要保存到的遠程文件夾。

在命令行上,這將是:

$> svn mkdir your-url-scheme://your-site-address.domain/path/to/repo/example-directory

或者在 TortoiseSVN 上打開您的存儲庫進行瀏覽,右鍵單擊,然后選擇“創建新文件夾”

這將為您提供 SVN 存儲庫中的一個位置,供您在下一步中結帳。

簽入已啟動的項目

確保使用倉庫中新創建的空文件夾進行結帳。 SVN 實際上並不要求一個被檢出的文件夾為空,這是使它實際上非常靈活並且能夠在正確使用的情況下相當容易地將目錄的一部分包含到其中的重要部分。

現在,您將把這個空文件夾簽出到您已經啟動的項目的根文件夾中。 這會將您的項目添加到此文件夾的工作副本中,而無需進行任何提交。 命令是:

$> svn co your-url-scheme://your-site-address.domain/path/to/repo/example-directory /your/projects/root/

“co”代表結賬。 在 Tortoise svn 中,您可以右鍵單擊 或 在空的 repo 文件夾中並選擇“checkout...”,然后選擇項目根目錄。

設置忽略並提交

最后,在使用以下命令將任何其他文件添加到樹之前,您可以輕松地對某些文件設置忽略:

$> svn propset svn:ignore file-or-directory-to-ignore

並添加所有未忽略的目錄和文件:

$> svn add * --force

在這種情況下,強制在技術上是不必要的,但可以確保完全遞歸。 如果使用 TortoiseSVN,您現在也可以在文件資源管理器中執行所有這些操作,或者此時您甚至可以使用 IDE 擴展來執行此操作(確保在批量添加文件以進行提交之前忽略您需要的所有文件),僅此而已剩下的是確保將新添加的文件提交到存儲庫,並且您已啟動並運行源代碼控制:)

在此處添加此方法只是因為此方法允許您避免對那些沒人想隨身攜帶的臭二進制文件進行任何不必要的復制。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM