在主干之上维护插件定制
Maintaining plugin customizations on top of trunk
我希望对 Memberful Wordpress plugin that will meld the plugin with my existing website 进行一些自定义,只是比目前在暂存中做得更好。
理想情况下,插件将由 Git 维护,我可以用我的自定义创建一个分支,并且随着 Memberful 团队启动的每次更新,我会将我的分支重新定位到新的 master,测试, 并重新部署。
不幸的是,Memberful Wordpress 插件(以及所有其他 Wordpress 插件?)由 Subversion 维护。
有什么方法可以使用 Git 达到我想要的目的吗?还是我在这部分开发中使用 Subversion 并学习在 Subversion 中变基更明智?
编辑:This guide 对了解如何完成所有这些工作非常有帮助。
This answer to a similar question 展示了在 Subversion 中变基的过程。它是这样的:
svn cp trunk feature
- 致力于功能和主干
svn cp trunk feature-rebase
svn co feature-rebase
cd feature-rebase
svn merge feature
svn commit
svn rm feature
svn mv feature-rebase feature
- (回到 feature-rebase WC)
svn switch feature
所以,在这种情况下我会做的是使用 Subversion 进行开发(在我的情况下不可取)并保持本地开发 trunk
up-to-date 与远程 trunk
使用 svn update
.
首选方案
我找到的一个首选替代方案允许我继续在 Git 中工作,它是通过利用作为 git-svn
的一部分包含的 robust set of commands 允许双向操作一个 Subversion 存储库和 Git.
我相信我需要做的(虽然我还没有测试过)是git svn init
a local development environment based on the remote trunk location (in my specific case, that is Memberful's Subversion repository and, whenever I need to "pull" changes from the remote repository, use git svn rebase
。
我希望对 Memberful Wordpress plugin that will meld the plugin with my existing website 进行一些自定义,只是比目前在暂存中做得更好。
理想情况下,插件将由 Git 维护,我可以用我的自定义创建一个分支,并且随着 Memberful 团队启动的每次更新,我会将我的分支重新定位到新的 master,测试, 并重新部署。
不幸的是,Memberful Wordpress 插件(以及所有其他 Wordpress 插件?)由 Subversion 维护。
有什么方法可以使用 Git 达到我想要的目的吗?还是我在这部分开发中使用 Subversion 并学习在 Subversion 中变基更明智?
编辑:This guide 对了解如何完成所有这些工作非常有帮助。
This answer to a similar question 展示了在 Subversion 中变基的过程。它是这样的:
svn cp trunk feature
- 致力于功能和主干
svn cp trunk feature-rebase
svn co feature-rebase
cd feature-rebase
svn merge feature
svn commit
svn rm feature
svn mv feature-rebase feature
- (回到 feature-rebase WC)
svn switch feature
所以,在这种情况下我会做的是使用 Subversion 进行开发(在我的情况下不可取)并保持本地开发 trunk
up-to-date 与远程 trunk
使用 svn update
.
首选方案
我找到的一个首选替代方案允许我继续在 Git 中工作,它是通过利用作为 git-svn
的一部分包含的 robust set of commands 允许双向操作一个 Subversion 存储库和 Git.
我相信我需要做的(虽然我还没有测试过)是git svn init
a local development environment based on the remote trunk location (in my specific case, that is Memberful's Subversion repository and, whenever I need to "pull" changes from the remote repository, use git svn rebase
。