2017-10-11 19 views
1

TFS GIT REST API経由でTFSのgit repoにサブモジュールを追加しようとしていますが、これまでのところ運がありません。新しいリポジトリを作成し、.gitモジュールをリポジトリに追加しましたが、サブモジュールのフォルダ/参照を追加する方法を理解できません。TFS Git Rest Api - サブモジュールを追加するには?

ここでは、.gitignore、.gitmodules、および "SomeTools"という名前のサブモジュールを使用して、最初のコミット用に構築しようとしている生のリクエストを示します。

POST http://tfs:8080/tfs/My_Collection/My_Projekt/_apis/git/repositories/TestRepo/pushes?api-version=2.0 HTTP/1.1 
Accept: */* 
Content-Type: application/json 
Host: tfs:8080 
Content-Length: 7213 

{ 
    "refUpdates": [ 
         { 
          "name": "refs/heads/develop", 
          "oldObjectId": "0000000000000000000000000000000000000000" 
         } 
        ], 
    "commits": [ 
        { 
         "changes": [ 
             { 
              "newContent": { 
                   "content": *.suo\r\n", 
                   "contentType": "rawtext" 
                  }, 
              "changeType": "add", 
              "item": { 
                 "path": "/.gitignore" 
                } 
             }, 
             { 
              "newContent": { 
                   "content": "[submodule \"SomeTools\"]\n\tpath = SomeTools\n\turl = http://tfs:8080/tfs/My_Collection/My_Projekt/_git/SomeTools\n", 
                   "contentType": "rawtext" 
                  }, 
              "changeType": "add", 
              "item": { 
                 "path": "/.gitmodules" 
                } 
             }, 
             { 
              "newContent": { 
                   "content": "198abf113d8baf48aa55ab1897b30fdb7b23c4cc", 
                   "contentType": "rawtext" 
                  }, 
              "changeType": "add", 
              "item": { 
                 "path": "/SomeTools", 
                 "versionType": "commit" 
                } 
             } 
            ], 
         "comment": "Initial commit." 
        } 
       ] 
} 

答えて

1

私たちはpushes REST APIによってそれを達成することはできません。サブブランドではなく新しいブランチを作成できます。

手作業でリポジトリを作成し、.gitmodulesファイルを追加したと思われる場合は、手動でsubmoduleフォルダ/参照を作成してから、コミット> Gitサーバーにプッシュする必要があります。そして、コミット

git clone http://server:8080/tfs/DefaultCollection/TeamProjectName/_git/Repo1 

git submodule add http://server:8080/tfs/DefaultCollection/TeamProjectName/_git/Repo2 

http://server:8080/tfs/DefaultCollection/TeamProjectName/_git/Repo1 
http://server:8080/tfs/DefaultCollection/TeamProjectName/_git/Repo2 

がRepo1のためのgitのサブモジュールを追加します:あなたは2つのGitリポジトリを持っていると仮定すると

最も簡単な方法は、Gitのサブモジュールを追加するgit submodule addのコマンドを実行しています変更とGitリポジトリへのプッシュ。

enter image description here

+0

@Wojciech Markowskiを使用すると、上記の回避策で問題を解決しましたか?すべてのアップデート? –

+0

残念ながら、私は残りのAPIを介して解決する方法を見つけることができませんでした。上記のようにgit localリポジトリを使用してサブモジュールを追加し、TFSにプッシュする必要がありましたが、この機能をサポートするためにすぐにWeb APIが改善されることを願っています。 –

関連する問題