3

私には異常なニーズがあり、Git がそれを満たせるかどうか疑問に思っています。

Python パッケージを Python 3 に移植したいと考えてpython_toolboxいます。しかし2to3、同じコードを使用して Python 2 と Python 3 の両方を使用したり、サポートしたりするのは好きではありません。(コードが美しいことは私にとって重要であり、Python 2 と Python 3 の両方で書かれたコードが美しいとは思わないためです。)

私が望むのは、Python 2.x 用と Python 3.x 用の 2 つの個別のソース フォルダーを持つことです。これにより、それぞれの主要な Python バージョンに合わせて調整されたコードの各バージョンを作成できます。両方のフォルダーを同じリポジトリにsetup.py配置し、実行している Python のバージョンに応じて動的に選択します。ここまでは順調ですね。

さて、ここで助けが必要です。Python 2.x ソース フォルダーから Python 3.x ソース フォルダーへのマージを実行できるようにしたいと考えています。なんで?Python 2.x フォルダーで機能を開発する場合、それらの機能を Python 3.x バージョンでも使用したいと考えています。手動でコピーしたくありません。私はそれらを Python 3.x フォルダーにマージしたいと思っています。Python 2.x 用に実装された機能を変更されたコードにマージする方法を決定するために自分の判断を使用する必要がある場合、素晴らしいマージが失敗することを完全に期待しています。 Python 3.x 用。

質問は次のとおりです。どうすればそれを行うことができますか? これらのフォルダーは Git リポジトリ内のフォルダーであり、Git リポジトリ自体ではありません。これまで使用したことのない Git サブモジュールを使用することを考えましたが、それらについてオンラインで読むと恐ろしい絵が描かれます。(「sobmodules」という用語が飛び交っていました。)

Git リポジトリ内のこれらのフォルダー間をマージする方法について、他のアイデアはありますか?

4

2 に答える 2

1

ブランチを使用することをお勧めします。ブランチをいずれかのバージョン専用にします。git branch --orphan完全に独立したブランチを作成するために使用できます。(git は共通の祖先を見つけることができないため、マージが難しくなる可能性があります。)

とにかく、そのソリューションを使用すると、あるバージョンから別のバージョンにマージできます。両方のバージョンを 1 つのコマンドで複製することもできます (同じリポジトリにあるため)。ただし、両方のバージョンを同時に開くには、リポジトリを 2 回複製して、2 つの異なるブランチを同時にチェックアウトできるようにする必要があります。

于 2013-09-12T07:38:25.613 に答える