我们将在这里介绍一些关于使用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
- 添加自定义端点
- 自定义内容类型
- 修改回应
- 模式
- 词汇表
- 路由和端点
- 控制器类