我建立一个使用第三方JavaScript库(TinyMCE的)Web应用程序。
我的应用程序有哪些要求我修补库在一些地方一些特定的需求。 这些补丁是简单的(小于十几行),但由于它们是针对于我们的用例,而不是错误。
我希望能够更新时库本身的新版本发布,这将改写了我们对Git仓库的变化。
我需要一种方法来确保我们的补丁正在推动更新库到生产服务器之前,始终应用。 由于变化是很小的,它不会是一个问题,手动应用它们。
如何确保我的补丁,以第三方代码在我们的资料库应用更新的第三方代码的时候?
我建立一个使用第三方JavaScript库(TinyMCE的)Web应用程序。
我的应用程序有哪些要求我修补库在一些地方一些特定的需求。 这些补丁是简单的(小于十几行),但由于它们是针对于我们的用例,而不是错误。
我希望能够更新时库本身的新版本发布,这将改写了我们对Git仓库的变化。
我需要一种方法来确保我们的补丁正在推动更新库到生产服务器之前,始终应用。 由于变化是很小的,它不会是一个问题,手动应用它们。
如何确保我的补丁,以第三方代码在我们的资料库应用更新的第三方代码的时候?
跟踪第三方代码创建一个存储库,并把你的补丁在一个单独的分支。 当你需要最新版本获取的变化和变基的分支。
例如:
$ git clone --origin github https://github.com/tinymce/tinymce.git
$ cd tinymce/
$ git remote add origin git@myrepo.example.org:tinymce
然后,让你的补丁,并推送到你的资料库:
$ git commit -m "my patches to tinymce"
$ git push --set-upstream origin master
此时你的资料库看起来是这样的:
(0) --- (1) --- ... (n) --- (X)
|
master
其中X是你的补丁。
现在设置一个分支来从GitHub的远程新修订:
$ git branch tinymce_import github/master
$ git checkout tinymce_import
$ git pull --ff-only
所以,你的仓库变成这样( git branch
是足够聪明的起源于GitHub的远程最后修订使用):
master
|
+----- (X)
|
(0) --- (1) --- ... (n) --- (n+1) --- ... (n+m)
|
tinymce_import
最后变基上tinymce_import master分支:
$ git checkout master
$ git rebase tinymce_import
master
|
+----- (X)
|
(0) --- (1) --- ... (n) --- (n+1) --- ... (n+m)
|
tinymce_import
如果您存储一个Git回购TinyMCE的,那么你可以使用一个Git post-commit-hook
来进行补丁你TinyMCE的新版本后(然后提交这些补丁)。
工作流程是这样的:
[get new version of TinyMCE]
["git commit -a" to update all tracked files]
[post-commit-hook patches TinyMCE]
["git commit -a" to pick up all of the changes from the patches]