4

サードパーティのJavaScriptライブラリ(TinyMCE)を使用するWebアプリケーションを構築しています。

私のアプリケーションにはいくつかの特定のニーズがあり、いくつかの場所でライブラリにパッチを適用する必要があります。パッチは簡単ですが(12行未満)、バグではなくユースケースに固有であるためです。

ライブラリ自体の新しいバージョンがリリースされたときに更新できるようにしたいと思います。これにより、Gitリポジトリの変更が上書きされます。

更新されたライブラリを運用サーバーにプッシュする前に、パッチが常に適用されるようにする方法が必要です。変更は非常に小さいため、手動で適用しても問題はありません。

サードパーティのコードを更新するときに、サードパーティのコードへのパッチがリポジトリに適用されていることを確認するにはどうすればよいですか?

4

2 に答える 2

5

サードパーティのコードを追跡するためのリポジトリを作成し、パッチを別のブランチに配置します。最新のリリースが必要な場合は、変更をフェッチしてブランチをリベースします。

例えば:

$ 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

したがって、リポジトリは次のようになります(githubリモートgit branchの最後のリビジョンをオリジンとして使用するのに十分スマートです):

                           master
                             |
                     +----- (X)
                     |
(0) --- (1) --- ... (n) --- (n+1) --- ... (n+m)
                                            |
                                      tinymce_import

最後に、マスターブランチをtinymce_importにリベースします。

$ git checkout master
$ git rebase tinymce_import

                                                  master
                                                    |
                                            +----- (X)
                                            |
(0) --- (1) --- ... (n) --- (n+1) --- ... (n+m)
                                            |
                                      tinymce_import
于 2013-04-02T18:07:37.683 に答える
1

TinyMCEをGitリポジトリに保存している場合post-commit-hookは、新しいバージョンのTinyMCEを入手した後、Gitを使用してパッチを実行できます(その後、それらのパッチをコミットします)。

ワークフローは次のようになります。

[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]
于 2013-01-18T19:23:59.593 に答える