我們將在這里介紹一些關于使用subversion的基礎知識:啟動,更改事物和標記版本。
本文檔不是使用SVN的完整和強大的解釋,而是更多的快速入門,以開始使用WordPress.org上的插件。 有關更全面的文檔,請參閱SVN Book。
有關其他信息,請參閱以下文檔:
- readme.txt如何工作
- 插件資源(標題圖像和圖標)的工作原理
## 術語
如果你剛剛顛覆,你需要知道幾個字是什么意思,所以讓我們來看一下顛覆行為來介紹一些術語。
您的所有文件將集中存儲在我們服務器上的svn存儲庫中。從該存儲庫中,任何人都可以將您的插件文件的副本檢出到本地機器上,但作為插件作者,只有您有權登記,這意味著您可以更改文件,添加新文件和刪除本地機器上的文件,并將這些更改上傳到中央服務器。這是檢查存儲庫中的文件以及WordPress.org插件目錄中顯示的信息的過程。
Subversion會跟蹤所有這些更改,以便您可以隨時返回并查看舊版本或更新版本,如果您需要的話。除了記住每個修訂版本之外,您還可以通過subversion來標記存儲庫的某些修訂版本,以供參考。標簽對于標記不同版本的插件非常棒。
## SVN文件夾
SVN存儲庫有四個文件夾:
```
/assets/
/branches/
/tags/
/trunk/
```
accsets用于屏幕截圖,插件標題和插件圖標。
所有開發工作屬于trunk。
發行進入tags。
代碼分支變化branchhs。
即使您在其他地方進行開發工作(如git倉庫),我們建議您使用代碼保持trunk文件夾的最新版本,方便SVN比較。
## 如何 …
以下部分將介紹SVN的一些基礎知識
開始你的全新插件
所有您需要做的是將您已經擁有的插件文件添加到新的SVN信息庫。
為此,您需要首先在機器上創建一個本地目錄以容納SVN存儲庫的副本:
```
$ mkdir my-local-dir
```
接下來,查看預建的存儲庫
```
$ svn co https://plugins.svn.wordpress.org/your-plugin-name my-local-dir
> A my-local-dir/trunk
> A my-local-dir/branches
> A my-local-dir/tags
> Checked out revision 11325.
```
正如你所看到的,subversion已經將所有從中央SVN存儲庫的目錄添加到“add”(“A”)到本地副本。 現在,您可以使用復制/粘貼命令通過命令行或拖放將文件添加到本地存儲庫副本的目錄中。 無論你喜歡什么
一旦您的文件位于trunk文件夾中,您必須讓subversion知道您要將這些新文件添加到中央存儲庫中。
```
my-local-dir/$ svn add trunk/*
> A trunk/my-plugin.php
> A trunk/readme.txt
```
>[warning] 警告:請勿將主插件文件放在trunk的子文件夾中,如/trunk/my-plugin/my-plugin.php,因為這會破壞下載。 您可以使用子文件夾包含的文件。
添加所有文件后,您將檢查更改回到中央存儲庫。
```
my-local-dir/$ svn ci -m 'Adding first version of my plugin'
> Adding trunk/my-plugin.php
> Adding trunk/readme.txt
> Transmitting file data .
> Committed revision 11326.
```
需要為所有簽入包含提交消息。
如果由于“禁止訪問”而導致提交失敗,并且您知道您有提交訪問權限,請將您的用戶名和密碼添加到check-in命令中。
```
my-local-dir/$ svn ci -m 'Adding first version of my plugin' --username your_username --password your_password
```
編輯已在存儲庫中的文件
我們假設你已經有你的插件庫填滿了所需的文件。 現在假設你需要編輯一個文件來改進插件。
首先進入您的本地存儲庫副本,并確保它是最新的
```
$ cd my-local-dir/
my-local-dir/$ svn up
> At revision 11326.
```
在上面的例子中,我們都是最新的。 如果中央存儲庫中有更改,則它們將被下載并合并到本地副本中。
現在,您可以使用任何您喜歡的編輯器編輯需要更改的文件。
如果您沒有使用SVN GUI工具(例如SubVersion或Coda),則在進行更改后,您仍然可以檢查本地副本和中央存儲庫之間的區別。 首先我們檢查本地副本的狀態:
```
my-local-dir/$ svn stat
> M trunk/my-plugin.php
```
這告訴我們,我們的本地trunk / my-plugin.php與我們從中央存儲庫下載的副本不同(“修改”的“M”)。
我們來看看這個文件究竟有什么變化,所以我們可以檢查一下,確保事情看起來正確。
```
my-local-dir/$ svn diff
> * What comes out is essentially the result of a
* standard `diff -u` between your local copy and the
* original copy you downloaded.
```
如果一切都看起來不錯,那么現在是時候檢查中央存儲庫的這些更改。
```
my-local-dir/$ svn ci -m "fancy new feature: now you can foo *and* bar at the same time"
> Sending trunk/my-plugin.php
> Transmitting file data .
> Committed revision 11327.
All done!
```
如果由于“禁止訪問”而導致提交失敗,并且您知道您有提交訪問權限,請將您的用戶名和密碼添加到check-in命令中。
```
my-local-dir/$ svn ci -m 'Adding first version of my plugin' --username your_username --password your_password
“Tag” a new version
```
每次你正式發布你的插件,你應該標記該版本的代碼的副本。 這可以讓您的用戶輕松獲取最新版本(或更舊版本),讓您更輕松地跟蹤更改,并讓WordPress.org插件目錄知道您的插件版本應該告訴人們下載。
為了做到這一點,你需要記住在trunk/readme.txt中更新Stable Tag字段!
首先將代碼復制到tags/目錄中的子目錄中。 為了WordPress.org插件瀏覽器的目的,新的子目錄應該總是看起來像一個版本號。 2.0.1.3好 酷熱標簽不好
我們想使用svn cp而不是常規cp,以利用SVN的功能。
```
my-local-dir/$ svn cp trunk tags/2.0
> A tags/2.0
```
現在,一如以往,請檢查更改。
```
my-local-dir/$ svn ci -m "tagging version 2.0"
> Adding tags/2.0
> Adding tags/2.0/my-plugin.php
> Adding tags/2.0/readme.txt
> Committed revision 11328.
```
或者,您可以使用http URL復制,并自己保存帶寬:
```
my-local-dir/$ svn cp https://plugins.svn.wordpress.org/your-plugin-name/trunk https://plugins.svn.wordpress.org/your-plugin-name/tags/2.0
```
這樣做將遠程執行副本,而不是在本地復制一切并上傳。 如果您的插件較大,這可能是有益的。
恭喜! 你已經更新了你的代碼!
## 也可以看看
- readme.txt如何工作
- 插件資源(標題圖像和圖標)的工作原理
- SVN書
- 簡介
- 主題開發
- WordPress許可證
- 什么是主題
- 開發環境
- 主題開發示例
- 主題基礎
- 模板文件
- 主樣式表(style.css)
- 文章類型
- 規劃主題文件
- 模板層級
- 模板標簽
- 循環
- 主題函數
- 連接主題文件和目錄
- 使用CSS和JavaScript
- 條件標簽
- 類別,標簽和自定義分類
- 模板文件
- 內容模板文件
- 頁面模板文件
- 附件模板文件
- 自定義內容類型
- 部分和其他模板文件
- 評論模板
- 分類模板
- 404頁面
- 主題功能
- 核心支持的功能
- 管理菜單
- 自定義Headers
- 自定義Logo
- 文章格式
- 置頂文章
- Sidebars
- Widgets
- 導航菜單
- 分頁
- 媒體
- Audio
- Images
- Galleries
- Video
- 精選圖片和縮略圖
- 國際化
- 本地化
- 輔助功能
- 主題選項 – 自定義API
- 定制對象
- 改進用戶體驗的工具
- 定制JavaScript API
- JavaScript / Underscore.js渲染的自定義控件
- 高級用法
- 主題安全
- 數據消毒/逃避
- 數據驗證
- 使用隨機數
- 常見漏洞
- 高級主題
- 子主題
- UI最佳實踐
- JavaScript最佳做法
- 主題單元測試
- 驗證你的主題
- Plugin API Hooks
- 發布你的主題
- 所需的主題文件
- 測試
- 主題評論指南
- 寫文檔
- 提交你的主題到WordPress.org
- 參考文獻
- 模板標簽列表
- 條件標簽列表
- 編碼標準
- HTML編碼標準
- CSS編碼標準
- JavaScript編碼標準
- PHP編碼標準
- 插件開發
- 插件開發簡介
- 什么是插件
- 插件基礎
- 頭部要求
- 包括軟件許可證
- 啟用 / 停用 Hooks
- 卸載方法
- 最佳做法
- 插件安全
- 檢查用戶功能
- 數據驗證
- 保護輸入
- 保護輸出
- 隨機數
- Hooks
- Actions
- Filters
- 自定義Hooks
- 高級主題
- 管理菜單
- 頂級菜單
- 子菜單
- 短代碼
- 基本短碼
- 封閉短碼
- 帶參數的短代碼
- TinyMCE增強型短碼
- 設置
- 設置API
- 使用設置API
- 選項API
- 自定義設置頁面
- 元數據
- 管理帖子元數據
- 自定義元數據
- 渲染元數據
- 自定義文章類型
- 注冊自定義文章類型
- 使用自定義文章類型
- 分類
- 使用自定義分類
- 在WP 4.2+中使用“split術語”
- 用戶
- 創建和管理用戶
- 使用用戶元數據
- 角色和功能
- HTTP API
- JavaScript
- jQuery
- Ajax
- 服務器端PHP和入隊
- Heartbeat API
- 概要
- 計劃任務
- 了解WP-Cron計劃
- 安排WP-Cron 事件
- 將WP-Cron掛接到系統任務計劃程序中
- WP-Cron簡單測試
- 國際化
- 本地化
- 如何國際化您的插件
- 國際化安全
- WordPress.org
- 詳細插件指南
- 規劃您的插件
- 如何使用Subversion
- 插件開發者常見問題
- 開發工具
- Debug Bar 和附加組件
- 輔助插件
- REST API手冊
- 資源
- 文章
- 文章修訂
- 文章類型
- 文章狀態
- 類別
- 標簽
- 頁面
- 評論
- 分類
- 媒體
- 用戶
- 設置
- 使用REST API
- 全局參數
- 分頁
- 鏈接和嵌入
- 發現
- 認證
- 經常問的問題
- 骨干JavaScript客戶端
- 客戶端庫
- 擴展REST API
- 添加自定義端點
- 自定義內容類型
- 修改回應
- 模式
- 詞匯表
- 路由和端點
- 控制器類