亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > C# > 正文

TortoiseSVN使用教程

2020-01-24 01:20:13
字體:
來源:轉載
供稿:網友

TortoiseSVN 是 Subversion 版本控制系統的一個免費開源客戶端,可以超越時間的管理文件和目錄。文件保存在中央版本庫,除了能記住文件和目錄的每次修改以外,版本庫非常像普通的文件服務器。你可以將文件恢復到過去的版本,并且可以通過檢查歷史知道數據做了哪些修改,誰做的修改。這就是為什么許多人將 Subversion 和版本控制系統看作一種“時間機器”。

安裝及下載client 端

1.下載Windows 端程序:http://tortoisesvn.net/downloads。一般而言,如果是32-bit的Windows XP 應該使用TortoiseSVN-1.4.x.xxxx-win32-svn-1.4.x.msi 這個檔案。如果是64-bit 的操作系統,則應該使用TortoiseSVN-1.4.x.xxxx-x64-svn-1.4.x.msi 這個檔案。

2.執行下載回來的TortoiseSVN 安裝程序,就會進行TortoiseSVN 的安裝。正確安裝后,應該進行一次的重開機,以確保TortoiseSVN 的正確無誤。

3.安裝成功后,在檔案管理員內按下鼠標右鍵,應該可以看到如下的畫面:

 

大部分的TortoiseSVN的操作都是透過檔案管理員及鼠標右鍵就可以完成了。如果您之前使用過TortoiseCVS,應該會對這種操作方式感到十分親切。

什么是SVN(Subversion)?

有一個簡單但不十分精確比喻:
SVN = 版本控制 + 備份服務器

簡單的說,您可以把SVN當成您的備份服務器,更好的是,他可以幫您記住每次上傳到這個服務器的檔案內容。并且自動的賦予每次的變更一個版本。

通常,我們稱用來存放上傳檔案的地方就做Repository。用中文來說,有點像是檔案倉庫的意思。不過,通常我們還是使用Repository這個名詞?;旧希谝淮挝覀冃枰幸粋€新增(add)檔案的動作,將想要備份的檔案放到Repository上面。日后,當您有任何修改時,都可以上傳到 Repository上面,上傳已經存在且修改過的檔案就叫做commit,也就是提交修改給SVN server的意思。針對每次的commit,SVN server都會賦予他一個新的版本。同時,也會把每次上傳的時間記錄下來。日后,因為某些因素,如果您需要從Repository下載曾經提交的檔案。您可以直接選擇取得最新的版本,也可以取得任何一個之前的版本。如果忘記了版本,還是可以靠記憶嘗試取得某個日期的版本。

為甚么要用SVN?

1.備份工作檔案是十分重要的。您永遠不知道計算機上的硬盤何時會壞掉。根據經驗法則再加上摩菲定理,壞事情往往都發生在最重要的時刻。例如,要 release東西的前一刻,硬盤完全壞掉,無法修復。所以,常常備份工作數據是非常重要的。大部分公司的server都會有專門的備份機制,甚至是異地備援。絕對比放在自己的計算機里頭,或是隨身碟上面來的安全。 

2.版本控管非常重要。您無法保證手頭上最新版本永遠都是對的。很多時候,在經過數天努力工作后,您才發現走錯方向。需要將所有的修改回復到數天前版本。沒有幾個人能夠完全記住自己修改過什么東西。如果沒有做好版本控管,那么,最差的狀況就是要全部重來。

3.伙伴間的數據同步也是非常重要的。很多時候,除了您個人外,還有其它的伙伴也需要您的檔案。怎么把最新的檔案提供給伙伴呢?用e-mail?根據經驗,用 e-mail是一個很差的辦法。到了最后,根本就不知道哪一封e-mail才是新的。因為可能您最新的e-mail已經被當成垃圾信給丟了。別忘了,現在很多e-mail軟件都有anti-spam的功能,說不定這些信件都被當成廣告信給處理掉了。而且,您也應該知道一般檔案如果放在e-mail內,檔案大小會變得比較大(通常是原來的4/3倍以上)。如果每天更新一次,恐怕幾天沒收信的話,信箱就爆了!

4.如果沒有一個好的辦法,備份不同版本是很耗費硬盤空間的。例如:您有一個總共10MB的目錄,使用單純的檔案備份。如果有10個版本就會變成100MB。 20個版本就有200MB。如果,不想備份這么多版本,勢必就是要減少備份的次數。拉長備份周期將會導致數據遺失的危險性增高。把舊的不需要的備份刪除?根據經驗,只要時間一拉長,您跟本就不知道一個月以前的版本是重要或者是不重要。

SVN能幫我們解決上面的問題嗎?答案是肯定的:

1.SVN Repository可以是自己計算機上的一個目錄,或者是隨身碟(不建議這樣用)。當然也可以是公司的服務器。
2.SVN有很棒的版本控管機制。所有上傳的版本都會幫您記錄下來。日后您可以隨時取得某一個時刻的版本。而且,也有版本分支及合并等好用的功能。
3.SVN可以讓不同的開發者存取同樣的檔案,并且利用SVN Server作為檔案同步的機制。也就是說,您有檔案更新時,無須將檔案寄給您的開發成員。只需要告訴他新的版本已經在SVN Server上面,請他自己去SVN Server上面就可以取得最新版本。而且,SVN Server也可以做到當您上傳新版本后,自動發信給相關的成員。
 4.SVN的存放檔案方式是采用差異備份的方式。也就是說,他只會備份有不同的地方。所以很省硬盤空間。此外,他也可以針對所謂的非文字文件進行差異備份。

怎么樣在Windows下面建立SVN Repository?

假設您已經安裝前面所提及的TortoiseSVN這套軟件,現在我們先告訴您如何用自己的硬盤或是隨身碟當作SVN Repository的存放地點。如果您只想知道如何存取一個已經建立好的SVN Server上面的Repository,請直接跳過本節。

假設您的要放置Repository的地方是E槽。您需要先建立一個空的目錄。以下面的例子而言,我們在E槽下面建立了一個名為svn_repo的目錄。 SVN并沒有限定Repository目錄名稱。您可以建立任何您自己喜歡的名稱。但是,強烈建議勿使用非英文的檔名(如中文或日文)。


透過您的檔案管理員,在E:/svn_repo的Icon上面,按下鼠標右鍵后,選擇TortoiseSVN->Create repository here。

接著,您會看到如下的一個窗口,這個窗口主要是問您,您希望使用的Repository數據庫格式是FSFS還是BDB?;旧希堖x擇FSFS就可以了。按下OK按鈕后,您將可以看到下一個畫面。

 

這就表示您的SVN repository已經成功的建立了。接下來就是要把您的檔案備份進來。日后,只要需要使用這個repository,我們就可以使用 file:///E:/SVN_REPO表示它。SVN就是透過這種URL的方式到如何與Repository取得聯系。各種URL的格式如下:

file:///磁盤驅動器|/repository所在目錄/子目錄
http://賬號@服務器名稱/ repository所在目錄/子目錄
https://賬號@服務器名稱/ repository所在目錄/子目錄
svn+ssh://賬號@服務器名稱/ repository所在目錄/子目錄

其中,http表示使用一般的超文字傳輸通訊協議。https表示使用加密的超文字傳輸通訊協議。svn+ssh表示透過SSH加密通訊的管道,進行存取。

建立一個Working目錄

所謂的Working目錄其實就是您平常用來存放工作檔案的地方。通常我們會等到自己的工作做的一個段落的時候再進行備份。所以我們平常都是在 Working目錄下面工作,等到適當時機在commit到repository中。舉例來說,我們想在D槽下面建立一個名為working的目錄。首先先把這個目錄建立出來。

此時,這個目錄應該為空的。

在檔案管理員中按下右鍵后(您可以在working目錄的icon上按,也可進入working目錄后,在空白的地方按),選擇SVN checkout。

接著您可以看到如下的畫面:

首先我們要填入的是repository的位置,對于SVN來說,repository的位置都是URL。由于我們前面已經在E槽建立一個repository,因此,我們現在要在URL of repository這一欄填入file:///E:/svn_repo/。

接著,稍微看一下Checkout directory,這個字段應該要指向您的working目錄。確認后,按下OK按鈕,您應該可以看到如下的訊息窗口。

這樣就表示動作完成。按下OK按鈕后,再到您剛剛建立的目錄下。您將會看到working目錄下面多了一個名為.svn的目錄(這個目錄是隱藏的,如果您的檔案管理員沒有設定可以看到隱藏目錄,您將無法看到它) 。


SVN會在您的工作目錄下,以及其子目錄下建立這個.svn的子目錄。您不應該進去這個目錄,尤其不應該更動這個目錄下面的任何內容。否則會很可能會造成SVN無法正常運作。

由于,原來的repository是空的,所以我們現在的working目錄也是空的。如果您現在checkout的是一個已經有內容的repository,您將會看到working目錄下面現在多了許多目錄及檔案。

如果您要在一個已經存在的SVN Server上面checkout出上面的檔案,您只需要給定正確的URL以及working目錄的名稱。就可以取得指定的檔案及目錄了。

新增檔案及目錄到Repository中

假設您前面的動作都無誤?,F在您開始開發一個新的程序。假設您開發的程序將放在前面建立的working目錄下面的my_ prj子目錄。如下所示:

假設您已經編輯好檔案,準備把他們放到SVN的repository中。您需要在my_prj目錄的icon上面,按鼠標右鍵,并且選擇TortoiseSVN->Add:


接著,TortoiseSVN會把準備要加入的檔案及目錄,顯示給您看。打勾的就是等下要被加入到Repository中的。如果您有某些檔案或是目錄不想在這次加入,您可以讓該項目不要被勾選。如此,它就不會被加入到Repository去。

按下OK后,您將會看到如下的訊息窗口:

這樣就表示成功了。有一點要注意的是,這個Add的動作并未真正的將檔案放到Repository中。僅僅是告知SVN準備要在Repository中放入這些檔案。此時,如果您透過檔案管理員查看這些檔案,應該會看到一個白色紅底的驚嘆號在檔案icon的下方。


這是表示您的working目錄中的檔案與Repository中的檔案還沒有同步。現在我們要多一個commit的動作。讓這些檔案真正的放入到 Repository中。您可以在my_prj目錄的icon上或者是my_prj目錄內的空白處按下鼠標右鍵,叫出如下的選單,并且選擇SVN commit。

緊接著,您將會看到如下的窗口出現:

在這個窗口中,下半部會列出一個清單,讓您清楚的了解到哪些檔案要被commit到repository中。同樣的,如果您有檔案不想在這個時候commit到Repository,您可以取消選取的檔案,這樣他們就不會被commit到Repository中。

在檔案列表的上方是Message欄,您可以在欄中輸入本次commit的目的。這是十分重要的字段,當您commit的次數很多時,可以靠這個訊息知道版本與版本之間的差異。當您輸入好Message,按下OK之后,就可以看到如下的窗口出現,通知您已經將指定的檔案送到Repository中。

您可以到先前的folder中,確定是否所有的檔案icon都有如下的綠色勾勾在上面,這樣代表您的檔案都正確無誤的到repository中。

有時候,因為Windows本身的問題,您可能會看到有些icon沒有變成綠色的勾勾。此時,多按F5幾次,應該就可以解決這個問題。如果,仍然不行,表示您之前的commit動作真的有問題。請仔細檢查之前的commit動作是否正確。

更新檔案及目錄

為何需要更新?由于版本控制系統多半都是由許多人共同使用。所以,同樣的檔案可能還有人會去進行編輯。為了確保您工作目錄中的檔案與Repository中的檔案是同步的。建議您在編輯前都先進行更新的動作。在此,我們都先假設您已經將檔案check out過一次?,F在要說明的是如何在一個check out過的目錄進行update。在想要更新的檔案或目錄icon上面按下鼠標右鍵。并且選擇SVN Update。


正常的狀況下,您可以看到如上的窗口。在這個窗口中會顯示有哪些文件更新了。如果沒有看到檔案更新的相關信息,這表示您的目錄中的檔案已經是最新的,所以無須進行更新。

更新至特定版本

有時我們需要回溯至特定的日期或是版本,這時就可以利用SVN的Update to revision的功能。在想要更新的檔案或目錄icon上面按下鼠標右鍵。并且選擇TortoiseSVN->Update to revision。


在這個Update窗口中,您可以選擇更新到最新版本(HEAD)。也可以選擇更新到某個指定的版本(Revision)。當然,您可能早就記不起來正確的版本號碼。可能只隱約的記得大概在什么時間。沒關系,按下Show log按鈕,您就可以回顧歷史了。


所有您曾經做過的動作,及其日期與對應的版本都會列在這個窗口上面,只要在你想要的版上面點一下,讓他變成反白,然后按下OK。這個版本就會自動填入Update窗口中的Revision字段中。您只要再按下一次OK,這個版本就會被取出來到您的硬盤中。

復制檔案及目錄

很多時候您會希望有另外一個復制的目錄來進行新的編修。等到確定這個分支的修改已經完畢了,再合并到原來的主要開發版本上。舉例來說,我們目前在working copy下面有如下的目錄及檔案:

 


現在,我們要為trunk這個目錄建立一個branch。假設我們希望這個目錄是在D:/working/my_prj/branch /my_new_branch_for_testing。首先我們可以在trunk目錄下面的空白處,或是直接在trunk的icon下面按下鼠標右鍵。


在選擇Branch/Tag…這個項目后,您將會看到如下的對話框出現。

請先確認From WC at URL: 中的目錄是您要復制的來源目錄。接著,在To URL中輸入您要復制過去的路徑。通常我們會將所有的branch集中在一個目錄下面。以上面的例子來說,branch檔案都會集中在branch的子目錄下面。在To URL中您只需要輸入您要的目錄即可。目錄不存在時,會由SVN幫您建立。特別需要注意的是SVN因為斜線作為目錄分隔字符,而非反斜線。

接著在Log message輸入您此次branch的目的為何。按下OK就可以了。

如果成功,將可以看到下面的畫面:

按下OK就可以關閉這個窗口了。如果您此時立刻去working copy的branch子目錄下面,您將會失望的發現在該目錄下面并沒有剛剛指定的目錄存在。這是因為您working copy的部份還是舊的,您只需要在branch子目錄下面進行SVN update就可以看到這個新增的目錄了。新增的目錄就與原來的目錄無關了。您可以任意對他進行編輯,一直到您確認好所有在branch下面該做的工作都完成后,您可以選擇將這個branch merge回原來的trunk目錄,或者是保留它在branch中。

要merge回trunk目錄中,方法很簡單。以上面的例子來說,我們在D:/working/my_prj/trunk目錄空白處,按下鼠標右鍵,選擇Merge:

接著可以看到如下的畫面:

這個畫面主要分為三個部份,前面的From: 與 To: 是要問您打算從Branch中的哪個版本到哪個版本,merge回原來的trunk目錄中。因此,From跟To的URL字段應當都是指定原來 branch的目錄下。剩下的就是指定要merge的revision范圍。以上面的例子而言,我們從Branch的Revision 7開始merge到Branch下面的最新版本。您可以透過,Dry run按鈕,試作一次Merge。這個merge只會顯示一些訊息,不會真正的更新到trunk的目錄去。只有按下Merge按鈕后,才會真正的將 branch的檔案與trunk的檔案合并起來。


上面的訊息告訴我們在trunk目錄下面的yyyy.cpp及xxx1.cpp已經被更改過了。如果您在現在到trunk目錄下,會看到這兩個檔案處于被修改的狀態。

如果您確認這次的merge沒有問題,您可以直接使用commit來將這兩個被修改的檔案commit回SVN repository上。如果有問題,您可以直接修改這兩個檔案,直到確認ok了,再行commit。

 

一切順利的話,您就成功的將branch的檔案merge回trunk了。

制作Tag或是Release

所謂的Tag或是Release就是一個特別的版本,因為這個版本可能有特別的意義。例如:這個版本是特別的Milestone或是release給客戶的版本。其實,Tag與Release的作法與Branch完全相同。只是Branch可能會需要merge回原來的trunk中,而tag及 release大部分都不需要merge回trunk中。舉例來說,今天我們的trunk做了一版,這個版本被認定是軟件的1.0版。1.0版對于開發來說是一個非常重要的里程碑。所以我們要特別為他做一個標記,亦即Tag。假設,這個 1.0版是要正式release給客戶或是相關vendor,我們要可以為他做一個Release的標記?;旧希琒VN只有目錄的概念,并沒有什么 Tag的用法。所以您會看到再SVN的選單上面,Branch與Tag是同一個項目。以這個1.0的例子來說,我們就是在Trunk上面,按下鼠標右鍵,選擇Branch/Tag的項目:


成功的話,您就在Tag目錄下面建立了一個1.0的目錄。當然,如果您這時到Tag的目錄下面去,會看不到這個目錄,您需要在Tag目錄下面update一下,才能看到它。


制作Release的作法與Tag完全相同。只是把Tag的目錄換成Release而已。

看到這里,相信大家都已經領悟到無論是Branch,Tag或是Release都只是將指定的 Trunk版本復制一份到另外一個目錄去。至于這個目錄要叫Branch還是叫Release,SVN根本就不管。所以,您也可取其它的目錄名稱。不過,Branch,Tag及Release已經是SVN上面約定成俗的名稱。所以,除非您知道自己為何這樣做,否則,最好還是follow這個命名原則,以免后面新加入的人看不懂。
NOTE:同樣的道理Trunk也只是一個約定成俗的名稱。不一定要叫Trunk。只是大家看到Trunk目錄就會知道這里面放的是主要的開發主干。

快速參考

前面寫了不少廢話,主要是給完全沒有版本控制觀念的人看的。如果你想直接知道某個功能如何使用,請看下面的章節。

在后面的說明,皆以d:/working當作工作目錄。您可以將他換成其它任何您想要的目錄。

取得(Checkout)Repository

1.開啟檔案管理員,進入d:
2.在檔案管理員空白處按下鼠標右鍵,選擇SVN Checkout
3.在Checkout對話框中, 1.URL of repository:repository的位置。
2.Checkout directory:要存放working copy的地方。

4.若d:/working目錄不存在,SVN會問您要不要建立這個目錄,請選擇Yes。
5.接著按下OK,即可checkout該目錄。

更新(Update)檔案或目錄

1.在您要由repository更新至working copy的檔案或是目錄的icon上面按下鼠標右鍵。選擇SVN Update即可。
2.如果是要更新至特定的版本,則選擇TortoiseSVN->Update to revision。并且在Update對話框中的Revision字段輸入您要的版本。也可以透過Show Log按鈕來查看版本的信息。

新增(Add)檔案或目錄

1.在尚不屬于repository的檔案或目錄的icon上按下鼠標右鍵。選擇TortoiseSVN->Add。
2.選取要新增的檔案。
3.按下OK。


NOTE:新增的檔案要經過提交(Commit)的動作才回真正的放入Repository中。

提交(Commit)修改過的檔案或目錄

1.在修改過的檔案,或是在整個目錄的空白處按下鼠標右鍵。
2.勾選真正要提交至Repository的檔案或目錄。
3.輸入本次提交的紀錄訊息(Message)。這個訊息應該要清楚明了,但不應過份簡單。以利日后版本追蹤。
4.按下OK。

Copy/Tag/Branch/Release檔案或目錄

1.確認您要處理的檔案或是目錄已經是Repository中最新的版本。
2.在要處理的目錄或是檔案上面按下鼠標右鍵,選擇TortoiseSVN->Branch/Tag。
3.在To URL處輸入您要的目的地。 1.branch:要產生一個分支。以區別與trunk不同的開發。
2.tag:要形成一個標記,表示重要的milestone。
3.release:表示一個已經正式的release的紀錄。
4.其它:進行一個復制(copy)。

以上內容通過圖片加文字的方式給大家介紹了tortoisesvn使用教程,希望大家喜歡。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
庆余年2免费日韩剧观看大牛| 日韩电影第一页| 亚洲护士老师的毛茸茸最新章节| 亚洲va欧美va国产综合剧情| 国产在线精品一区免费香蕉| 91av成人在线| 亚洲精品aⅴ中文字幕乱码| 亚洲日韩中文字幕在线播放| 亚洲精品之草原avav久久| 日韩av在线播放资源| 国产精品欧美亚洲777777| 91精品啪在线观看麻豆免费| 日韩欧美在线视频免费观看| 日本久久久a级免费| 亚洲国产福利在线| 欧美不卡视频一区发布| 亚洲久久久久久久久久久| 91精品啪在线观看麻豆免费| 欧美亚洲成人精品| 国产一区二区在线免费| 国模精品一区二区三区色天香| 精品国内产的精品视频在线观看| 韩国三级电影久久久久久| 日日骚久久av| 亚洲欧美另类在线观看| 国产999精品久久久影片官网| 国产精品视频永久免费播放| 国产精品成人播放| 一个人看的www久久| 亚洲视频在线视频| 97精品在线视频| 久久久久久成人| 日韩亚洲精品电影| 久久综合国产精品台湾中文娱乐网| 国产精品va在线| 久久人人爽国产| 国产精品露脸av在线| 国产精品第3页| 亚洲国产成人在线视频| 欧美日韩亚洲一区二| 国产精品久久久久久久久| 国产亚洲精品久久久| 国产成人午夜视频网址| 欧美在线观看www| 国产亚洲视频在线| 精品一区电影国产| 色多多国产成人永久免费网站| 国产精品久久999| 91亚洲精品久久久久久久久久久久| 国产精品久久不能| 国产亚洲欧洲高清一区| 成人性生交大片免费观看嘿嘿视频| 欧美裸体男粗大视频在线观看| 久久影视电视剧免费网站清宫辞电视| 色偷偷亚洲男人天堂| 日本中文字幕久久看| 亚洲人成在线播放| 一区二区三区在线播放欧美| 亚洲综合日韩中文字幕v在线| 久色乳综合思思在线视频| 亚洲国产成人在线视频| 美女扒开尿口让男人操亚洲视频网站| 69视频在线播放| 久久精品成人一区二区三区| 亚洲欧美另类在线观看| 成人日韩av在线| 亚洲色无码播放| 欧美一区二区三区四区在线| 亚洲午夜精品久久久久久久久久久久| 国产精品稀缺呦系列在线| 疯狂做受xxxx高潮欧美日本| 日韩亚洲欧美成人| 欧美日韩国产精品| 国产精品爽爽ⅴa在线观看| 日韩av综合中文字幕| 国产精品欧美激情在线播放| 久久99久久亚洲国产| 欧美性猛交丰臀xxxxx网站| 欧美成人第一页| 51视频国产精品一区二区| 91精品国产91久久| 国产z一区二区三区| 7777免费精品视频| 欧美色xxxx| 欧美极品美女电影一区| 中文字幕精品国产| 国产suv精品一区二区三区88区| 欧美极品少妇xxxxx| 国产免费观看久久黄| 久久影视电视剧免费网站| 亚洲人成网站999久久久综合| 国产精品一区专区欧美日韩| 97福利一区二区| 久久久久久高潮国产精品视| 中文字幕在线精品| 亚洲激情自拍图| 欧美高清videos高潮hd| 亚洲精品mp4| 国产午夜精品免费一区二区三区| 日韩在线免费视频观看| 欧美综合在线第二页| 色噜噜狠狠狠综合曰曰曰| 亚洲偷熟乱区亚洲香蕉av| 中文字幕无线精品亚洲乱码一区| 久久av中文字幕| 久久av在线播放| 欧美另类交人妖| 国产丝袜一区二区三区| 亚洲色图国产精品| 国产狼人综合免费视频| 日本午夜人人精品| 国产精品视频26uuu| 韩国精品美女www爽爽爽视频| 亚洲精品mp4| 国产精品视频一区二区高潮| 欧美日韩国产成人| 精品久久中文字幕| 精品亚洲va在线va天堂资源站| 欧美多人爱爱视频网站| 国产精品综合网站| 九九精品在线播放| 中文字幕在线看视频国产欧美在线看完整| 日韩av网站在线| 亚洲va欧美va国产综合剧情| 日韩欧美一区二区三区久久| 国产va免费精品高清在线观看| 日韩欧美亚洲综合| 九色精品美女在线| 欧美性少妇18aaaa视频| 日韩中文字幕视频| 欧美黄网免费在线观看| 精品视频在线观看日韩| 日韩在线视频播放| 久久亚洲私人国产精品va| 亚洲国产欧美一区二区三区久久| 欧美日韩色婷婷| 国产精品美乳一区二区免费| 日韩美女免费视频| 韩国国内大量揄拍精品视频| 亚洲97在线观看| 91av在线不卡| 国产丝袜一区二区三区| 亚洲国产欧美久久| 国产午夜精品全部视频播放| 日韩欧美中文字幕在线观看| 欧美丰满少妇xxxx| 2018国产精品视频| 中文字幕精品www乱入免费视频| 日韩成人av在线| 欧美日韩中文字幕日韩欧美| 亚洲日韩中文字幕| 亚洲国产成人精品电影| 亚洲激情在线观看| 91精品免费看| 69国产精品成人在线播放| 91丝袜美腿美女视频网站| 奇米一区二区三区四区久久| 国产精品av电影| 日韩精品久久久久久久玫瑰园| 91久久精品久久国产性色也91| 亚洲精品色婷婷福利天堂| 国产精品欧美一区二区| 国产精品网站大全| 亚洲一区二区免费|