<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ThinkChat2.0新版上線,更智能更精彩,支持會話、畫圖、視頻、閱讀、搜索等,送10W Token,即刻開啟你的AI之旅 廣告
                ### 檢驗歷史 我們曾經說過,版本庫就像是一臺時間機器,它記錄了所有提交的修改,允許你檢查文件或目錄以及相關元數據的歷史。通過一個Subversion命令你可以根據時間或修訂號取出一個過去的版本(或者恢復現在的工作拷貝),然而,有時候我們只是想*看看*歷史而不想*回到*歷史。 有許多命令可以為你提供版本庫歷史: **svn log** 展示給你主要信息:附加在版本上的日志信息和所有版本的路徑修改。 **svn diff** 展示一個文件改變的詳細情況。 **svn cat** 取得在特定版本的某一個文件顯示在當前屏幕。 **svn list** 顯示一個目錄在某一版本存在的文件。 ### **svn log** 找出一個文件或目錄的歷史信息,使用**svn log**命令,**svn log**將會提供你一條記錄,包括:誰對文件或目錄作了修改、哪個修訂版本作了修改、修訂版本的日期和時間、還有如果你當時提供了日志信息,也會顯示。 ~~~ $ svn log ------------------------------------------------------------------------ r3 | sally | Mon, 15 Jul 2002 18:03:46 -0500 | 1 line Added include lines and corrected # of cheese slices. ------------------------------------------------------------------------ r2 | harry | Mon, 15 Jul 2002 17:47:57 -0500 | 1 line Added main() methods. ------------------------------------------------------------------------ r1 | sally | Mon, 15 Jul 2002 17:40:08 -0500 | 1 line Initial import ------------------------------------------------------------------------ ~~~ 注意日志信息缺省根據*時間逆序排列*,如果希望察看特定順序的一段修訂版本或者單一版本,使用`--revision` (`-r`)選項: ~~~ $ svn log --revision 5:19 # shows logs 5 through 19 in chronological order $ svn log -r 19:5 # shows logs 5 through 19 in reverse order $ svn log -r 8 # shows log for revision 8 ~~~ 你也可以檢查單個文件或目錄的日志歷史,舉個例子: ~~~ $ svn log foo.c … $ svn log http://foo.com/svn/trunk/code/foo.c … ~~~ 這樣*只會*顯示這個工作文件(或者URL)做過修訂的版本的日志信息。 如果你希望得到目錄和文件更多的信息,你可以對**svn log**命令使用`--verbose` (`-v`)開關,因為Subversion允許移動和復制文件和目錄,所以跟蹤路徑修改非常重要,在詳細模式下,**svn log** 輸出中會包括一個路徑修改的歷史: ~~~ $ svn log -r 8 -v ------------------------------------------------------------------------ r8 | sally | 2002-07-14 08:15:29 -0500 | 1 line Changed paths: M /trunk/code/foo.c M /trunk/code/bar.h A /trunk/code/doc/README Frozzled the sub-space winch. ------------------------------------------------------------------------ ~~~ **為什么**svn log**給我一個空的回應?** 當使用Subversion一些時間后,許多用戶會遇到這種情況: ~~~ $ svn log -r 2 ------------------------------------------------------------------------ $ ~~~ 乍一看,好像是一個錯誤,但是想一下修訂版本號是作用在版本庫整體之上的,如果你沒有提供路徑,**svn log**會使用當前目錄作為默認的目標,所以,作為結果,如果你對一個本身和子目錄在指定版本到現在沒有做過修改的目錄運行這個命令,你會得到空的日志。如果你希望察看某個版本做的修改的日志,只需要直接告訴**svn log**使用版本庫頂級的目錄作為參數,例如**svn log -r 2 。 ### svn diff 我們已經看過**svn diff**―使用標準區別文件格式顯示區別,它在提交前用來顯示本地工作拷貝與版本庫的區別。 事實上,**svn diff**有*三*種不同的用法: - 檢查本地修改 - 比較工作拷貝與版本庫 - 比較版本庫和版本庫 #### 比較本地修改 像我們看到的,不使用任何參數調用時,**svn diff**將會比較你的工作文件與緩存在`.svn`的“原始”拷貝: ~~~ $ svn diff Index: rules.txt =================================================================== --- rules.txt (revision 3) +++ rules.txt (working copy) @@ -1,4 +1,5 @@ Be kind to others Freedom = Responsibility Everything in moderation -Chew with your mouth open +Chew with your mouth closed +Listen when others are speaking $ ~~~ #### 比較工作拷貝和版本庫 如果傳遞一個`--revision`(`-r`)參數,你的工作拷貝會與指定的版本比較。 ~~~ $ svn diff --revision 3 rules.txt Index: rules.txt =================================================================== --- rules.txt (revision 3) +++ rules.txt (working copy) @@ -1,4 +1,5 @@ Be kind to others Freedom = Responsibility Everything in moderation -Chew with your mouth open +Chew with your mouth closed +Listen when others are speaking $ ~~~ #### 比較版本庫與版本庫 如果通過`--revision` (`-r`)傳遞兩個版本號,通過冒號分開,這兩個版本會進行比較。 ~~~ $ svn diff --revision 2:3 rules.txt Index: rules.txt =================================================================== --- rules.txt (revision 2) +++ rules.txt (revision 3) @@ -1,4 +1,4 @@ Be kind to others -Freedom = Chocolate Ice Cream +Freedom = Responsibility Everything in moderation Chew with your mouth open $ ~~~ 你不僅可以用**svn diff**比較你工作拷貝中的文件,你甚至可以通過提供一個URL參數來比較版本庫中兩個文件的的區別,通常在本地機器沒有工作拷貝時非常有用: ~~~ $ svn diff --revision 4:5 http://svn.red-bean.com/repos/example/trunk/text/rules.txt … $ ~~~ ### **svn cat** 如果你只是希望檢查一個過去的版本而不希望察看它們的區別,使用**svn cat**: ~~~ $ svn cat --revision 2 rules.txt Be kind to others Freedom = Chocolate Ice Cream Everything in moderation Chew with your mouth open $ ~~~ 你可以重定向輸出到一個文件: ~~~ $ svn cat --revision 2 rules.txt > rules.txt.v2 $ ~~~ 你一定疑惑為什么不只是使用**svn update --revision** ,將文件更新到舊的文件,我們有使用**svn cat**的原因。 首先,你或許希望使用外置的比較工具(或許是一個圖形化的工具,或者你的格式無法用標準區別格式察看)察看這兩個版本的區別,這種情況下,你需要得到一個舊的版本的拷貝,所以重定向到一個文件,并且在你的比較工具中指定這兩個版本來察看區別。 有時候察看整個文件比只看區別要容易。 ### **svn list** **svn list**可以在不下載文件到本地目錄的情況下來察看目錄中的文件: ~~~ $ svn list http://svn.collab.net/repos/svn README branches/ clients/ tags/ trunk/ ~~~ 如果你希望察看詳細信息,你可以使用`--verbose` (`-v`)參數: ~~~ $ svn list --verbose http://svn.collab.net/repos/svn 2755 harry 1331 Jul 28 02:07 README 2773 sally Jul 29 15:07 branches/ 2769 sally Jul 29 12:07 clients/ 2698 harry Jul 24 18:07 tags/ 2785 sally Jul 29 19:07 trunk/ ~~~ 這些列告訴你文件和目錄最后修改的修訂版本、做出修改的用戶、如果是文件還會有文件的大小,最后是修改日期和項目的名字。 ### 關于歷史的最后一個詞 除了以上的命令,你可以使用帶參數`--revision`的**svn update**和**svn checkout**來使整個工作拷貝“回到過去”: ~~~ $ svn checkout --revision 1729 # Checks out a new working copy at r1729 … $ svn update --revision 1729 # Updates an existing working copy to r1729 … ~~~ 看到了吧?我們說過Subversion是一個時間機器。
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看