版本管理之SVN實踐教程:基礎篇(6):tag的查詢/建立/刪除/設定
這篇文章介紹一下在svn中tag操作的查詢/建立/刪除與設定。
查詢tag
因為因為tags目錄是apache建議的方式,其本質也就是一個目錄,所以查詢的方式可以結合svn list命令確認改目錄下的檔案資訊,以及svn log確認提交資訊來進行。
[root@platform demo-repo]# svn list tags
release-script-1.0/
release-script-1.1/
[root@platform demo-repo]#
可以看到tags下有兩次release打的tag:release-script-1.0/和release-script-1.1。當然也可以使用全路徑的URL來確認:
[root@platform demo-repo]# svn ls svn://192.168.163.129:3690/demo-repo/tags/
release-script-1.0/
release-script-1.1/
[root@platform demo-repo]#
[root@platform demo-repo]# svn ls svn://192.168.163.129:3690/demo-repo/tags/release-script-1.1/
feature_script.sh
trunk-file
[root@platform demo-repo]#
使用svn log查詢tag相關的日誌資訊
[[email protected] tags]# svn log
------------------------------------------------------------------------
r8 | devuser1 | 2018-08-26 14:15:41 -0400 (Sun, 26 Aug 2018) | 1 line
release for feature_script
------------------------------------------------------------------------
r6 | devuser1 | 2018-08-26 14:07:55 -0400 (Sun, 26 Aug 2018) | 1 line
release for feature_script
------------------------------------------------------------------------
r2 | devuser1 | 2018-08-26 13:39:18 -0400 (Sun, 26 Aug 2018) | 1 line
branches init
------------------------------------------------------------------------
[[email protected] tags]#
也可以使用-v選項獲取更為詳細的修改資訊
[[email protected] tags]# svn log -v
------------------------------------------------------------------------
r8 | devuser1 | 2018-08-26 14:15:41 -0400 (Sun, 26 Aug 2018) | 1 line
Changed paths:
A /tags/release-script-1.1 (from /trunk:7)
release for feature_script
------------------------------------------------------------------------
r6 | devuser1 | 2018-08-26 14:07:55 -0400 (Sun, 26 Aug 2018) | 1 line
Changed paths:
A /tags/release-script-1.0 (from /trunk:5)
release for feature_script
------------------------------------------------------------------------
r2 | devuser1 | 2018-08-26 13:39:18 -0400 (Sun, 26 Aug 2018) | 1 line
Changed paths:
A /branches
A /tags
A /trunk
branches init
------------------------------------------------------------------------
[[email protected] tags]#
建立
刪除
因為在刪除操作時會自動生成可修改的commit日誌資訊,所以需要設定SVN_EDITOR,這裡設定為vi,也可以設定你熟悉的其他編輯器。
[root@platform tags]# export SVN_EDITOR=vi
使用svn rm進行刪除操作
[root@platform tags]# svn rm svn://192.168.163.129:3690/demo-repo/tags/release-script-1.0
此時會提示如下資訊,如果需要修改,修改後儲存退出編輯器
--This line, and those below, will be ignored--
D svn://192.168.163.129/demo-repo/release-script-1.0
選擇繼續,則刪除完成
[root@platform tags]# svn rm svn://192.168.163.129:3690/demo-repo/tags/release-script-1.0
Log message unchanged or not specified
(a)bort, (c)ontinue, (e)dit:
c
Committed revision 13.
[root@platform tags]#
刪除後狀態確認
使用update命令,會更新working copy的狀態
[root@platform tags]# ls
release-script-1.0 release-script-1.1
[root@platform tags]# svn update
Updating '.':
D release-script-1.0
Updated to revision 13.
[root@platform tags]# ls
release-script-1.1
[root@platform tags]#
svn的刪除日誌資訊日誌資訊(可以看到沒有刪除的日誌資訊,只有附加資訊)
[[email protected] tags]# svn log -v
------------------------------------------------------------------------
r13 | devuser2 | 2018-08-26 15:45:21 -0400 (Sun, 26 Aug 2018) | 1 line
Changed paths:
D /tags/release-script-1.0
------------------------------------------------------------------------
r8 | devuser1 | 2018-08-26 14:15:41 -0400 (Sun, 26 Aug 2018) | 1 line
Changed paths:
A /tags/release-script-1.1 (from /trunk:7)
release for feature_script
------------------------------------------------------------------------
r6 | devuser1 | 2018-08-26 14:07:55 -0400 (Sun, 26 Aug 2018) | 1 line
Changed paths:
A /tags/release-script-1.0 (from /trunk:5)
release for feature_script
------------------------------------------------------------------------
r2 | devuser1 | 2018-08-26 13:39:18 -0400 (Sun, 26 Aug 2018) | 1 line
Changed paths:
A /branches
A /tags
A /trunk
branches init
------------------------------------------------------------------------
[[email protected] tags]#
設定
因為tags是release操作相關,所以一般專案中都會對其進行只讀設定。結合前面的基礎知識,這裡我們來對tags的訪問許可權進行設定。
authz
在authz中新增如下設定,即可禁止目前的的開發使用者和測試使用者都對tags下是隻讀許可權。
[demo-repo:/tags]
@group_dev = r
testuser1 = r
但是這會導致一個問題,建立tag也會沒有許可權。
[root@platform tags]# svn copy svn://192.168.163.129:3690/demo-repo/trunk svn://192.168.163.129:3690/demo-repo/tags/release-script-1.2 -m "release for feature_script 1.2"
svn: E220004: Access denied
[root@platform tags]#
所以此時可以考慮將建立tag操作的許可權專門管理,再建立相關對此目錄有寫許可權的使用者或組進行管理即可,詳細設定方法可以參看前面的文章。
另外還有將tags目錄設為只讀的方式,這種方式很多時候因為企業內部的流程審計需要,比如需要將所有的釋出操作的日誌進行audit,這種流程之下,tags下根本是不允許進行刪除的。
而專案中使用的最多的方式則是使用hook的方式,在pre-commit的階段判斷出來,如果發現此使用者試圖在tags下進行修改,則禁止,或者使用相關的模版直接設定相關許可權即可,詳細的方式在後續的hook使用中繼續進行介紹。
相關推薦
版本管理之SVN實踐教程:基礎篇(6):tag的查詢/建立/刪除/設定
這篇文章介紹一下在svn中tag操作的查詢/建立/刪除與設定。 查詢tag 因為因為tags目錄是apache建議的方式,其本質也就是一個目錄,所以查詢的方式可以結合svn list命令確認改目錄下的檔案資訊,以及svn log確認提交資訊來進行。
版本管理之gitlab實踐教程 進階篇 1
實踐gitflow 結合git flow,使用gitlab作為遠端倉庫管理,在實際的專案中是一種可行的方式,而且這種方式對與複雜大型的專案有較好的適應方式。 git flow git flow源於Vincent Driessen在2010年提出的一個分支模型: 主要特點 兩個長期
版本管理之gitlab實踐教程:基礎篇(1)
這幾篇文章主要面向對git和gitlab稍有基礎,但是又不太會用的使用者,通過這幾文章你可以學到如下gitlab的使用方法: sshkey的設定 建立專案 分支操作 使用者/許可權/組的操作 配置專案可見性 Merge Request Issues操作
版本管理之gitlab實踐教程:基礎篇(16)
這篇文章介紹一下如何修改初始管理賬號root的密碼。 命令列方式 確認gitlab-rails 使用gitlab-rails進行設定 which gitlab-rails /opt/gitlab/bin/gitlab-rails # #
版本管理之gitlab實踐教程:基礎篇(14)
這篇文章整理一下對gitlab/github進行clone或者push操作時,不需要每次提交都輸入使用者名稱/密碼的幾種方式。 場景 何時需要輸入使用者名稱/密碼 gitlab可以建立private/protected/public的倉庫,priv
版本管理之gitlab實踐教程 基礎篇 1
這幾篇文章主要面向對git和gitlab稍有基礎,但是又不太會用的使用者,通過這幾文章你可以學到如下gitlab的使用方法: sshkey的設定 建立專案 分支操作 使用者/許可權/組的操作 配置專案可見性 Merge Re
版本管理之gitlab實踐教程:進階篇(1)
實踐gitflow 結合git flow,使用gitlab作為遠端倉庫管理,在實際的專案中是一種可行的方式,而且這種方式對與複雜大型的專案有較好的適應方式。 git flow git flow源於Vincent Driessen在2010年提出的一個分
版本管理之gitlab實踐教程 基礎篇 3
symbol 為什麽 reg details pro == 什麽 操作 requests comment是版本管理中非常重要的內容,尤其是在經年累月的大型項目中,鐵打的項目,流水的SE,哪怕只言片語的留下,對後來者問題的對應很多時候都能起到重要作用,這篇文章用來講解
linux基礎篇(三):程序管理
程序 程序的定義:程序就是cpu未完成的工作 ps命令 ps a ##關於當前環境的所有程序 x| -A ##所有程序 f ##顯示程序從屬關係 e ##顯示程序呼叫環境工具的詳細資訊 l ##長列表顯示程序的
nodejs之elasticsearch使用:基礎篇(一)
nodejs之elasticsearch使用:基礎篇(一) 前言 程式碼 前言 本節只是嘗試使用nodejs中的elasticsearch模組實現elasticsearch在node環境下的基本增刪改查。 具體方法詳情
linux基礎篇(二):基於Redhat7系統的特殊許可權與acl許可權列表
新建目錄和檔案的預設許可權 新建目錄和檔案的預設許可權是由系統中umask值來決定的。 新建FILE許可權:666-umask (對位相減) 由數字法賦許可權的過程中,我們能夠發現,凡是奇數許可權,總是包含執行許可權的。而一個檔案如果預設就包含執行許可權其實是非常危險的。因此如果所
linux基礎篇(七):基於Redhat7系統的系統日誌與延時任務
系統日誌 配置檔案: /etc/rsyslog.conf 系統日誌是記錄系統中硬體、軟體和系統問題的資訊,同時還可以監視系統中發生的事件。使用者可以通過它來檢查錯誤發生的原因,或者尋找受到攻擊時攻擊者留下的痕跡。 常用日誌型別與日誌級別 型別 auth
linux基礎篇(六):基於Redhat7系統的網路設定
常用網路協議 ipv4 IPv4,是網際網路協議(Internet Protocol,IP)的第四版,也是第一個被廣泛使用,構成現今 網際網路技術的基礎的協議。1981年 Jon Postel 在RFC791中定義了IP,Ipv4可以執行在各種 各樣的底層網路上,比如端
linux基礎篇(五):檔案歸檔與不同系統間的檔案傳輸
檔案歸檔 檔案歸檔,就是把多個檔案變成一個歸檔檔案,即將多個檔案打包起來 tar命令 Unix和類Unix系統上的壓縮打包工具,可以將多個檔案合併為一個檔案,打包後的檔名亦為“tar”。tar檔案格式已經成為POSIX標準,最初是POSIX.1-1988,當前是POSIX.1-2
linux基礎篇(四):基於Redhat7系統的sshd服務
SSHD 服務簡介 ssh 協議:安全外殼協議。為 Secureshell 的縮寫。SSH 為建立在應用層和傳輸層基礎上的安全協議。 sshd 服務使用 SSH 協議可以用來進行遠端控制, 或在計算機之間傳送檔案。而實現此功能的傳統方式,如 telnet(終端模擬協議)都是極為不安全的,
linux基礎篇(九):Redhat7系統中使用指令碼安裝虛擬機器
安裝虛擬機器 要安裝一個虛擬機器,我們需要開啟virt-manager然後一步一步的去設定才能到達安裝頁面,但是有沒有更好的辦法能夠只需要一部到達安裝虛擬機器的頁面呢,下面就給大家展示用指令碼直接到達安裝一個虛擬機器的頁面 安裝虛擬機器我們當然要在真機中操作,每一步都一定要仔細檢查
linux基礎篇(八):基於Redhat7系統中的DHCP服務的設定
什麼是DHCP? DHCP,動態主機配置協議,前身是BOOTP協議,是一個區域網的網路協議,使用UDP協議工作,常用的2個埠:67(DHCP server),68(DHCP client)。DHCP通常被用於區域網環境,主要作用是集中的管理、分配IP地址,使client動態的獲得IP地址
linux基礎篇(十):基於Redhat7系統中的定時任務
定時任務CRONTAB概念/介紹 crontab命令用於設定週期性被執行的指令。該命令從標準輸入裝置讀取指令,並將其存放於“crontab”檔案中,以供之後讀取和執行。 cron 系統排程程序。 可以使用它在每天的非高峰負荷時間段執行作業,或在一週或一月中的不同時段執行。cron是系統主
Unity Editor 基礎篇(二):自定義 Inspector 面板
自定義Inspector屬性面板 EditorGUILayout 編輯器介面佈局 這是一個編輯器類,如果想使用它你需要把它放到工程目錄下的Assets/Editor資料夾下。編輯器類在UnityEditor名稱空間下。所以當使用C#指令碼時,你需要在指令碼前面加上
Unity Editor 基礎篇(三):自定義視窗案例二
本文為本人學習上鍊接的筆記微有改動,請點選以上鍊接檢視原文,尊重樓主智慧財產權。 ----------------------------------------------------------------------------------------------