通过tortoise svn将插件更新到存储库的正确方法是什么?


18

我不好意思说,即使我的插件已经在存储库中已有多年并且下载了30万次以上,我对通过Torvise svn更新插件的过程还是一无所知!

这里有很多关于svn的问题,但它们只是让我进一步困惑:-z

到目前为止,我已经以某种方式进行了管理,但是我需要了解正确的过程,以将我的插件更新为新版本,以提交主干和创建标签目录。

到目前为止,这是我一直在做的事情。

  1. 在本地对插件更新进行编码,直到对它满意为止
  2. 将本地插件文件夹中的所有文件复制到/ trunk /(插件和自述文件具有更新的版本号)
  3. 提交主干目录
  4. 右键单击主干目录,然后选择“创建分支/标签”并将其设置为复制到/ tags /中的文件夹,名称为版本号

这是正确的并且顺序正确吗?如果没有,正确的方法是什么?

另外,关于版本号...

由于某种原因,我在上次更新时从2.8.1版本升级到2.81.2,这是否意味着如果我将下一个版本号更改为2.81.2,则该更新将不会显示在具有2.81.2版本的人员的仪表板上。 2.9?

wordpress如何确定哪个是最新版本以及用户是否应该更新其版本?它做一个version_compare吗?仅适用于正确的php版本格式不是吗?例如。2.9.2被认为是低于2.81.2的版本?(因为据我所知,version_compare从左侧开始,并且比较每个数字的高/低,因此9被认为小于81)

另一个问题,

如果我发现代码中的一个愚蠢的错误并没有真正影响插件的工作,可能是拼写错误或其他图像。我要编辑什么并承诺使该插件的任何新下载都包含更改?

我必须编辑行李箱和标签文件夹并同时提交两者吗?


2
没有理由感到尴尬,一个月前,我也遇到了问题,实际上您比我走得更远:) @EAMann在以下线程上很好地描述了整个过程,包括屏幕截图:wordpress.stackexchange.com/questions/ 16951 /…

Answers:


29

我不好意思说,即使我的插件已经在存储库中已有多年并且下载了30万次以上,我对通过Torvise svn更新插件的过程还是一无所知!

不用了 SVN对很多人来说可能很棘手...所以让我们逐步进行一些事情...

到目前为止,这是我一直在做的事情。

  1. 在本地对插件更新进行编码,直到对它满意为止
  2. 将本地插件文件夹中的所有文件复制到/ trunk /(插件和自述文件具有更新的版本号)
  3. 提交主干目录
  4. 右键单击主干目录,然后选择“创建分支/标签”并将其设置为复制到/ tags /中的文件夹,名称为版本号

这是正确的并且顺序正确吗?如果没有,正确的方法是什么?

差不多...

应该遵循的步骤:

  1. 对插件更新进行本地编码,直到对它满意为止
  2. readme.txt文件中增加“稳定”标记以匹配新版本号
  3. 将本地更新复制到/trunk本地插件文件夹的目录中
  4. 提交整个插件以将更改保存/trunk到存储库
  5. 右键单击/trunk并创建一个新标签,复制到/tags/X.X.X其中xxx与的“稳定”标签中的版本相同的地方readme.txt(步骤2)
  6. 提交整个插件以保存标签

由于某种原因,我在上次更新时从2.8.1版本升级到2.81.2,这是否意味着如果我将下一个版本号更改为2.81.2,则该更新将不会显示在具有2.81.2版本的人员的仪表板上。 2.9?

答对了。如果您将版本2.81.2提交为更新,并且人们实际下载了该更新,则发布该版本时他们不会看到2.9。

wordpress如何确定哪个是最新版本以及用户是否应该更新其版本?它做一个version_compare吗?仅适用于正确的php版本格式不是吗?例如。2.9.2被认为是低于2.81.2的版本?(因为据我所知,version_compare从左侧开始,并且比较每个数字的高/低,因此9被认为小于81)

究竟。标准的PHP版本比较会将2.81.2版视为比2.9 版新的版本,因为81> 9。

我建议您接下来发布3.0版,然后在以后进行版本控制时要格外小心,以防止出现这种错字。

如果我发现代码中的一个愚蠢的错误并没有真正影响插件的工作,可能是拼写错误或其他图像。我要编辑什么并承诺使该插件的任何新下载都包含更改?

我必须编辑行李箱和标签文件夹并同时提交两者吗?

如果您需要进行较小的更改,请将其视为维护版本。我通常遵循以下版本控制架构:

2      .      1       .       3       .       5
major         minor           maint           build

内部版本号,我只在内部使用或用于Beta版本... 除非我手动通过电子邮件向您发送文件,否则您几乎永远不会看到我的内部版本号(这是我可以分发不会破坏WordPress更新的预发布版本的方式) 。

如果发现实时版本存在错误,我将进行快速修补并发布维护版本。假设我已经发布了2.2版本的插件,有人注意到我忘了在noConflict()模式下调用jQuery。我将做一个快速补丁,并立即发布2.2.1。

版本的增加将迫使WordPress识别更新并将修复程序提供给已经安装2.2版的任何人。

要发布维护版本,您需要遵循与发布完整版本系统完全相同的步骤。因此进行更改,在readme.txt,commit /trunk,tag等中增加版本。

但是,一旦您标记了某些内容,就永远不会再更改它。 认为您的/tags文件夹已冻结。该文件夹中的每个版本都是您插件在特定时间的快照。您永远不要/tags直接更改文件夹中的任何文件。

如果您发现自己认为这是一个好主意,可将自己打在头上,然后发布维护版本:-)

正如Piet所提到的,我之前写了一组很好的分步说明 ……但是该网站似乎丢失了我的屏幕截图。这是该分步指南的另一个版本,并且在我自己的网站上托管了Tortoise的屏幕截图:http//eamann.com/tech/how-to-publish-a-wordpress-plugin-subversion/


2
好答案。不过有一个小小的修改:当您说永不更改已标记的内容时,那几乎是对的。假设您在自述文件中输入错误,则无需为了维护而进行维护。今天在#wordpress-meta中与一位主要开发人员聊天,他们提到可以编辑标记的版本,只要它是readme.txt文件就可以。没有其他人。不过总的来说,是的,不要编辑标记的文件。
安迪·默瑟

好答案。我唯一要补充的是,涉及到插件版本号时,尽管不必使用语义版本控制,这是一个好主意,但它使用户更轻松地知道您的插件是否有可能破坏其站点主要版本更改。无论您选择对插件进行版本控制的任何系统,都请记住要更新自述文件更改日志。
阿伦
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.