問題タブ [subtree]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
2 に答える
1479 参照

git - git checkout リモート ブランチに余分なファイルが表示されますか?

master ブランチには、次のファイルとフォルダーがあります (簡略化)。

パブリック ブランチはベンダー リポジトリを追跡しており、サブツリーは上記のマスター ブランチのパブリック フォルダとしてマージされています。public には 3 つのフォルダーのみがあります (簡略化)。

パブリックからマスターに切り替えると、正しく動作します。

ただし、マスターからパブリックに切り替えると、奇妙なことが起こります。両方を組み合わせたすべてのファイルとフォルダーがあります。

ただし、gitステータスを確認すると、何も変更されていません。

「git reset --hard」が公開を修正することを発見しました。

手がかり: これは、マスターに新しいコミットを行った後にのみ発生するようです。git はある種の自動マージを行いますか?

「git reset --hard」の後、master へのチェックアウトと public への戻りは、繰り返しても問題なく動作します。

最初は直ったと思っていたのですが、次の変更でまた発生しました。確認のためにもう一度試してみましょう...

今、私はそれを再現することはできません。しかし、それは2回起こりました。

もう 1 つの手がかりは、初めて git reset --hard を実行したときに、ファイルがプロセスによってロックされていると不平を言ったことです。

問題のあるプログラムが閉じられた後、git reset --hard が成功し、2 つのブランチ間でチェックアウトが機能しました。

ファイルがロックされてチェックアウトが混乱し、「黙って」失敗するのでしょうか? 成功を報告してワークスペースがごちゃごちゃになっているだけでなく、 git reset --hard と同じように失敗するのが問題です。

これを回避するために git checkout に設定するその他の知恵やオプションをいただければ幸いです。

ウェイン

0 投票する
1 に答える
2243 参照

git - Gitを使用してリモートブランチからサブツリーをマージする方法

Gitのサブツリーはうまく機能しますが、一部のgitコマンドはサブツリーで引き続きサポートされています。

ここに質問があります:

「安定」や「統合」などの別のリモートブランチからサブツリーをプルするにはどうすればよいですか?


参考までにsubtree "push"、スクリプトとして機能しています。実際、サブツリーをリモートリポジトリ上の選択した特定のブランチにプッシュすることもできます。

誰かがプルで逆を行う方法を知っているか、手がかりさえ持っていますか?

単純なプルは次のように機能します。

試すことができる1つのアイデア:たぶん2ステップのプロセスでうまくいくでしょう。

  1. リモートブランチは、「stable」のようにリモートリポジトリブランチからプルされ、その後
  2. する?git subtree pull_master

よろしくお願いいたします。ウェイン

0 投票する
2 に答える
7369 参照

java - Javaで特定のサブツリーに一致するツリー内のすべてのサブツリーを見つける

各ノードが任意の数の子ノードを持つことができる、順序付けられていない根付きツリーを使用する Java でコードを書いています。木 T と部分木 S が与えられた場合、S に一致する T 内のすべての部分木 (つまり、S に同型である T 内のすべての部分木) を見つけられるようにしたいと考えています。

T の部分木は、S のエッジが T のエッジにマッピングされるように S のノードを T のノードにマッピングできる場合、S に同形です。

ツリーに別のサブツリーが含まれているかどうかを確認する方法について以前の質問がありましたが、S に一致する T のすべてのサブツリーを検索できるようにしたいと考えています。さらに T の各一致の各ノードからS の対応するノード。

つまり、一致が見つかった場合、単純に S に一致するツリーがルート化されている T 内のノードへのポインターとしてではなく、ノードへのポインターのペアのリストのようなものとして一致を返す必要があります [ (T1,S1),(T2,S2),...(Tn,Sn)] であり、T1 は、サブツリー内のノード S1 にマップされる T 内のノードへのポインターです。

別の方法として、ツリー T とサブツリー S の各ノードには固有の整数識別子が関連付けられているため、単に値のペアのリストを返すこともできます。

例えば:

木 T が次のように与えられます。

サブツリー S は次のようになります。

次の一致のリストが返されます。

[(a,x),(b,y),(c,z)] [(b,x),(d,y),(e,z)]

一意の一致は、T と S のノード間のマッピングではなく、T のノードのセットによって決定されます。

したがって、次の一致:

[(a,x),(b, z ),(c, y )]

の複製と見なされます

[(a,x),(b, y ),(c, z )]

それらは T (a,b,c) からの同じノードのセットを持っているため、一致するもののうちの 1 つだけが返されます。

別の例として、ツリー T が与えられた場合:

部分木 S:

次の一致のリストが返されます。

[(a,x),(b,y),(c,z)] [(a,x),(b,y),(d,z)] [(a,x),(c,y) ,(d,z)]

誰でもこれを行う方法のサンプルコードを教えてもらえますか?

編集(Chris Kannonのコメントに関連して):

誰かに答えをコーディングしてもらいたいと思っていますか? どこまで行きましたか?どんなコードを書きましたか?– クリス・カノン 1時間前

次のコードを実行すると、特定のサブツリーに一致するサブツリーがルート化されているツリー内のノードへのポインターのリスト (matchesList) が作成されます。ただし、同じノードをルートとする複数のサブツリーが存在する可能性があり、現在、各ノードは、そこにルートが設定されている一致の数に関係なく、matchesList に最大 1 回しか追加されません。

さらに、サブツリーのノードと元のツリーで見つかった一致のノードとの間で上記のマッピングを構築する方法がわかりません。

上記のコードは、次のすべてのサブグラフを見つけようとします。

一致するもの:

コードは、最初のツリーの最上位ノードと最初のツリーの 3 番目の子をルートとする一致があることを正常に検出します。ただし、実際には、1 つだけではなく、最上位ノードに根ざした 3 つの一致があります。さらに、コードはツリー内のノードとサブツリー内のノード間のマッピングを構築せず、これを行う方法がわかりません。

誰でもこれを行う方法についてアドバイスを提供できますか?

0 投票する
3 に答える
4489 参照

git - Git サブツリー タグ

サブツリー マージを使用して、リモート プロジェクトを自分の git ツリーのディレクトリにプルしたいと考えています。ここの指示に従いました: サブツリーマージの使用

しかし、タグをチェックアウトする方法がわかりません。これは一般的な要求だと思います。外部プロジェクトを取り込みたいが、ソースの安全なタグ付きバージョンを取得したい。サブツリー マージ ソリューションはうまく機能しますが、必要なタグを取得する方法がわかりません。git は大好きですが、頭が痛くなることもあります....

0 投票する
1 に答える
1489 参照

git - gitサブツリーのマージを使用し、マージされたすべてのサブツリーのすべてのブランチにもマージします

git統合を提供する人気のあるオープンソースの課題追跡システム(Redmine)を使用したいと思います。残念ながら、トラッカーの各プロジェクトは1つのgitリポジトリにしか関連付けることができません。トラッカーで複数のプロジェクトを作成することは、私の理想的な設定ではありません。

それを念頭に置いて、私はgitサブツリーのマージを使用しようとしました(ここここで説明されています)。私は「傘」リポジトリを作成しました。これは、私が使用している他の多数のリポジトリのそれぞれにマージされています。

残念ながら、与えられた例は、各サブツリーのマスターブランチをプルするだけです。私は各サブツリーの複数のブランチで開発を行っているので、このアンブレラリポジトリに各サブツリーの各ブランチを反映させる方法を学ぶ必要があります。

これは可能ですか?

追加クレジット:2つのサブツリーにそれぞれ同じ名前のブランチがある場合はどうなりますか?

0 投票する
1 に答える
301 参照

git - サブツリーを別のリモート ブランチに切り替える

私のリポジトリのこの部分を考えてみましょう:

django は、このハウツーに従ってマージしたサブツリーです:サブツリー マージ戦略の使用方法

現在、別の依存関係が現在の django のマスターと互換性がないことがわかりました。そのため、django/1.1.x に切り替えたいと考えています。どうすればいいですか?

前もって感謝します。

0 投票する
2 に答える
1373 参照

python - XMLファイルの特定のサブツリーのみを解析します

巨大なXMLファイルがあります。ただし、この巨大なツリーの1つの小さなサブツリーにのみ関心があります。このサブツリーを解析したいのですが、その一部のみを使用する場合は、大規模なツリー全体の解析に時間を無駄にしたくありません。

理想的には、このサブツリーの先頭が見つかるまでファイルをスキャンし、サブツリーの末尾に到達するまでサブツリーを解析してから、ファイルの残りの部分をわざわざ読み取らないようにします。たぶん、私が興味を持っているサブツリーをXPath式で記述します。lxmlを使用してこれを行う方法はありますか?このメソッドを使用してこのようなことができるように見えますがiterparse()、ドキュメントに基づくと、使用したい解析済みオブジェクトが生成されないようです。助言がありますか?

(lxmlの使用は必須ではありませんが、Pythonを使用したいので、理想的には高速にしたいと思います。)

0 投票する
1 に答える
2872 参照

python - xmlで表されるツリーからサブツリーを作成する - python

XML (ツリー形式) があり、そこからサブツリーを作成する必要があります。

例:

サブツリーは

Pythonでそれを行うのに最適なXMLライブラリは何ですか? すでにこれを行っているアルゴリズムも役に立ちます。注: XML ドキュメントはそれほど大きくなく、簡単にメモリに収まります。

0 投票する
3 に答える
2598 参照

git - 部分的なクローンを作成するときに.gitignoreを適切に使用していないGitサブツリー

私は大学院生で、多くのスクリプト、bibtexの参考文献データ、ラテックスの論文ドラフト、オープンオフィスでのプレゼンテーション、scribusのポスター、図と結果のデータを持っています。すべてを1つのプロジェクトにバージョン管理下に置きたいと思います。次に、書誌データなどの部分で作業する必要がある場合は、そのサブディレクトリをチェックアウトし、必要に応じて変更してからマージし直したいと思います.1つのバージョンを自宅のコンピューターにチェックアウトできるようにしたいです。私の仕事用コンピュータとは別のものを使用して、それぞれに個別に変更を加え、最終的にそれらをマージして戻します。また、この大きなプロジェクトからコードをチェックアウトして、バージョン管理とともに別のプロジェクトにインポートできるようにしたいと思います。変更する可能性がある場合は、それらを元のプロジェクトにマージできるようにしたいと思います。

私の理解に基づいて、gitサブツリーはこれを行うことができます。

http://github.com/apenwarr/git-subtree

私がやろうとしていることに沿った例があります:

http://psionides.jogger.pl/2010/02/04/sharing-code-between-projects-with-git-subtree/

私のプロジェクトのトランクにディレクトリが含まれているとしましょう:(bib bin cfg data fig src todo)。

使うとき

bibディレクトリに加えて、srcディレクトリなどの.gitignoreに基づい て無視またはバイナリと見なされるべきすべてのファイルと、チルダまたは./dataディレクトリで終わるすべてのファイルを取得します。

私の.gitignoreファイルは次のとおりです。

これを防ぐにはどうすればよいですか?

0 投票する
2 に答える
5405 参照

tinyxml - TinyXML サブツリーの繰り返し処理

TinyXML のサブツリーのノードを反復処理するコードを持っている人はいますか? IE: 親を指定して、そのすべての子とそのすべての子の子を反復処理しますか?