問題タブ [git-svn]

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 投票する
9 に答える
42527 参照

windows - TortoiseSVNのようなgit-svnWindowsクライアントはありますか?

TortoiseSVNのWindows統合が好きです。git-svnを扱うためのそのようなものはありますか?アクセスするのに十分な速さがある場合は、あまり統合されていないGUIを使用することもできます。正しいディレクトリにコマンドプロンプトが表示されることはめったにないので、CLIは必要ありません。


これは関連する質問ですが、Linuxの場合

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

git-svn - 複数のsvnプロジェクトを1つのgitリポジトリに入れますか?

ローカルコミットを実行できるようにするために、いくつかの作業にgit-svnを使用し始めました。これは、標準のsvnレイアウトを使用するプロジェクトに最適です。最近、接続された複数のモジュール(20〜25)に分割されたJavaプロジェクトの作業を開始しました。各モジュールには、同じsvnリポジトリ内に独自のトランク/ブランチ/タグを持つ独自のルートフォルダーがあります。

git svn clone -s / path / to / svnrepo /module[1-N]を使用してすべてのモジュールのクローンを作成しました。「問題」は、すべてのモジュールでgit svn rebaseを実行したい場合、N回実行する必要があることです。

git svn clone / path / to / svnrepo /を実行しようとしましたが、リベース操作をN回実行しないようにしましたが、svnリポジトリと同じディレクトリレイアウトが残ります。

1つのgitリポジトリですべてのモジュールのすべてのトランクを追跡できる方法はありますか?gitリポジトリ内に次のようなディレクトリレイアウトを取得するには、次のようにします。

0 投票する
4 に答える
792 参照

git - マージしたことを git が認識しないのはなぜですか? それを伝える方法はありますか?

私はgit-svnを使用しています。私は通常、トピック ブランチを作成し、それにコミットしてから、master をチェックアウトし、git svn rebase、git merge --squash topic_branch、git commit -m "summary comment"、そして git svn dcommit を実行します。

それはうまくいきますが、ブランチの変更をマスターにマージしたことをgitは認識していないようです。私はsvnを使わずにこれを試しました:

gitk --all はこれを示しています。これは、git-svn の問題ではないことを示しています。

明らかにマージされていないブランチを示す gitk 画像
(出典: selfamusementpark.com )

私のメイン (git-svn) プロジェクトでは、マージされたように見えるいくつかの変更が早い段階で見られますが、当時はそうではなかったので、今は何をしているのかわかりません。(問題がある場合、これは Ubuntu Jaunty の git 1.6.0.4 です。)

0 投票する
4 に答える
4958 参照

svn - SVN クライアントで GIT リポジトリを使用できますか?

現在、私は次の SVN クライアントを使用しています: Windows 用の TortoiseSVN と Visual Studio 2005+ 用の AnkhSVN。GIT は SVN との相互運用性が高いと聞きました。ツールは GIT リポジトリで動作しますか?

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

git-svn - git-svn dcommitがgitリポジトリに重複したコミットを残すのはなぜですか?それをやめてもいいですか?

私の典型的なgit-svnワークフローは次のとおりです。

この時点で、1つ以上のコミットが先にある同じコミットを指すブランチがありmasterます。それ以降のすべては、1つの線形の歴史の中にあります。story-xyzremotes/trunkremotes/trunk

次に実行します

私は、との間のコミットがSubversionリビジョンになることを期待しremotes/trunkmaster最終的には、の単一の線形履歴になり、remotes/trunkすべてが最新のリビジョンを指しているようになります。masterstory-xyz

私のSubversionリビジョンはうまくいきますが、最終的には2分岐構造になります。ブランチの一般的なルートは、コミットする前のSubversionHEADです。両方のブランチには、同じ差分が含まれているという意味で、同じ一連のコミットが含まれています。ブランチstory-xyzは、一方のブランチの先頭にあり、もう一方のブランチにremotes/trunkありmasterます。

実行前に持っていたgitcommitはgit svn dcommit、下位ブランチ(story-xyz)にあり、git commitメッセージ、gitユーザー名と電子メール、およびgitcommitタイムスタンプが含まれています。上位ブランチのコミットは新しいgitコミットです。彼らは私のSubversionユーザー名、私が実行したときのタイムスタンプを使用しdcommit、コミットメッセージにはgit-svn-idフィールドが追加されています。

これで大丈夫です。作業を続けることができます。問題は、マージされgitkていないブランチのように見えるものを調べて確認することstory-xyzです。にマージしたストーリーブランチと、マージしていないストーリーブランチの違いを区別するのはかなり難しいmasterです。それを見つける最も明白な方法は、重複したコミットメッセージです。ブランチを削除することはできstory-xyzますが、gitを適切に使用しておらず、履歴の一部が失われているように感じます。

私はgit-svnこれをやめる何かを逃していますか?それとも、これはSubversionとの対話がgitのパワーと自由を薄める方法の1つにすぎませんか?

0 投票する
4 に答える
663 参照

git - svnで行われたマージを認識するためにgit-svnをだます方法は?

安定したトランクと不安定な開発ブランチを備えた SVN セットアップがあります。開発作業は (ほとんど) ブランチで行われ、展開前にトランクにマージされます。

SVN クライアントとして git-svn を使用しています。不安定版からトランクへのマージ プロセスは次のとおりです。

svn/*リモート SVN ブランチです。

これはもちろん、私が完了する前に誰もトランクに何もコミットしないことを必要としますが、これは実際には問題ではありません。

このプロセスの利点は、git がマージ コミットの親をローカル リポジトリに記録するようになったことです。これは私の同僚には何のメリットもありませんが、マージを行うときにgit が共通の祖先を計算できるようにします。これは非常に望ましいことです。

そして、ここに摩擦があります。他の誰かがマージを行っても、git はそれを知りません。次に例を示します。

不安定なブランチはポイント X で作成されました。ポイント A で、不安定なブランチからの変更をポイント B の安定したブランチにマージすることにしました。共通の祖先は正しく X です。

マージは git 履歴に記録されていないため、次の C でのマージでは、X が共通の祖先であると想定しています。次のグラフのように、A にしたいと思います。

描かれているものとまったく同じように見えるグラフを取得することは絶対に必要というわけではありません. A を共通の祖先として認識する任意のグラフは、私には問題ありません。

git-filter-branch の適切な使用や、SVN に決してコミットされない「偽の」コミットなど、いくつかのオプションを念頭に置いています。しかし、これまでのところ、私の試みはどれも十分に機能していません。

あなたが提示できるアイデアに感謝します。手順は自動である必要はありません。マージは非常にまれであり、「手動で」実行するという苦痛に耐えることができます。

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

macos - 「git svn clone」の後にリポジトリが表示されない" Mac Leopard で

ここのオフィスでは SVN を使用しており、私自身も git-svn を使用して実験しています。

/usr/local/code/git にディレクトリを作成し、/testco にチェックアウトしました。

マニュアルページ git svn clone に記載されているコマンドを使用しました。リポジトリはどこにありますか。

SVNトランク内のすべてのファイルの数百行を通過しますが、完了すると、ディレクトリには.gitファイルのみが含まれます. 他のファイルはありません。何が起こっているか知っている人はいますか?

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

svn - git-svn に git リポジトリを含む Subversion リポジトリをインポートさせることはできますか?

plugins フォルダーを持つ SVN にプロジェクトがあります。いくつかのプラグイン フォルダーは git リポジトリですgit clone。.

これは私にとってはうまくいきましたが、今は次を使用してSVNリポジトリをgitに移行しようとしていますgit-svn:

これは、プラグイン フォルダーに git リポジトリがなかったすべての初期のリビジョンで正常に動作しますが、git リポジトリを含む最初のリビジョンにヒットすると、次のエラーで失敗します。

おそらくSVNリポジトリにある.gitフォルダーを除外することで、リポジトリを完全にインポートできるようにする方法はありますか?

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

svn - git-svn: マスター以外のブランチからのコミットを元に戻す

まあ..私はいくつかのヘッドレスコミットとマージを行いましたが、今は....

これが私がしたことです:

  1. git-svn で取得したトランク
  2. 枝分かれした仕事
  3. git commit されたものを動作させる
  4. git svn dcommit は svn への変更をコミットしました (はい、これは興味深いところです)
  5. git チェックアウト マスター
  6. gitマージ作業

この状況では、git は svn への変更がそれ自体と同じであることを理解していないようです。現在は最新ですが、試してみると

無効なアップストリームを取得します