web-dev-qa-db-ja.com

BitBucketの古いコミットの完全なソースにアクセスする方法は?

フローでこれを聞かなければならないのは嫌ですが、私の人生では、新しいBit Bucket形式で古いコミットのソースにアクセスする方法についてのドキュメントを見つけることも見つけることもできません。これはもう可能ですか?とてもイライラしました!

216
Ser Pounce

Mercurial/Gitクライアントを使用せずに、BitBucket Webインターフェース経由で古いバージョンをダウンロードしたいことを理解しています。

これを確認してください 関連する質問 。コメントについては、誰かがそれをする方法はないと言います。幸いなことに、それは完全に真実ではありません。

BitBucketプロジェクトページをナビゲートしても、任意のバージョンをダウンロードするリンクが見つかりませんでした。次の形式の特定のタグをダウンロードするためのリンクがあります。

https://bitbucket.org/owner/repository/get/v0.1.2.tar.gz

ただし、上記のURLを少し調整して、次のように、コミットハッシュによってタグ名を変更します。

https://bitbucket.org/owner/repository/get/A0B1C2D.tar.gz

実際に特定のバージョンをダウンロードできます。

Rakka Rage で述べたように、.tar.gz.Zipに置き換えることもできます。

355
Rudy Matela

GitHubでできるように、以前のコミットのコードを参照できるかどうかを把握しようとしていました。ここで見つけた情報を使用し、URLをいじってから、実際に古いコミットのコードを参照する方法を見つけました。

コードを閲覧しているとき、URLは次のようになります。

https://bitbucket.org/user/repo/src/

そして、このように最後にコミットハッシュを追加することにより:

https://bitbucket.org/user/repo/src/a0328cb

そのコミットの時点でコードを参照できます。コミットを直接選択するためのドロップダウンボックスがない理由がわかりません。この機能は既にあります。奇妙な。

191

ステップ1

Step 1


ステップ2

Step 2


ステップ3

Step 3


ステップ4

Step 4


最終ステップ

Final Step

164
Askar

誰かが私のボートに乗っていて、これらの答えがどれも正確に機能しない場合に備えて、ここに私がしたことを示します。

おそらく、社内のBitbucketサーバーの設定はほとんどの場合と少し異なりますが、マスターブランチのファイルを表示するためだけに通常使用するURLは次のとおりです。

https://<BITBUCKET_URL>/projects/<PROJECT_GROUP>/repos/<REPO_NAME>/browse

ドロップダウンメニューからマスターとは異なるブランチを選択すると、次のようになります:

https://<BITBUCKET_URL>/projects/<PROJECT_GROUP>/repos/<REPO_NAME>/browse?at=refs%2Fheads%2F<BRANCH_NAME>

だから私はこれをやってみましたが、うまくいきました:

https://<BITBUCKET_URL>/projects/<PROJECT_GROUP>/repos/<REPO_NAME>/browse?at=<COMMIT_ID>

これで、コミット時のレポジトリ全体を参照できます。

19
Brent212

数年前からのすばらしい回答。現在、Bitbucketにより簡単になっています。

ダウンロードするコミットにタグを付けます(Rudy Matelaの回答に記載されているとおり)。

次に、[ダウンロード]に移動して[タグ]タブをクリックすると、ダウンロード用の複数のオプションが表示されます。

Tag Downloads

9
LMSingh

記録のために、この方法でURLを操作することもできます。

最新のソースを閲覧すると、次のようなものがあります:https://bitbucket.org/my/repo/src/latestcommithash/my.file?at=master

コミットハッシュを変更し、GETパラメーターを削除するだけです:https://bitbucket.org/my/repo/src/wantedcommithash/my.file

上記の@Hein A.Grønnestadに+1を追加しました。GUIに何も使用できないのはなぜなのか、すべてうまくいきました。

8
neemzy
  1. 最も簡単な方法は、そのコミットをクリックして、そのコミットにタグを追加することです。 このコミットに「last_commit」タグを含めました

  2. ビットバケットのサイドナビゲーションの左隅にあるダウンロードに行くより。 左側のダウンロードをクリック

  3. ナビゲーションバーでタグをクリックし、UIからZipをダウンロードします。 タグを見つけてZipをダウンロードする
1

URLに?until=<sha-of-commit>を(ファイル名の後に)追加することにより、特定のコミットまでのファイルのソースを表示できます。

1
Eugen

私はそれが遅すぎることを知っていますが、API 2.0を使えばできます

コマンドラインから:

curl https://api.bitbucket.org/2.0/repositories/<user>/<repo>/filehistory/<branch>/<path_file>

またはphpで:

$data = json_decode(file_get_contents("https://api.bitbucket.org/2.0/repositories/<user>/<repo>/filehistory/<branch>/<path_file>", true));

次に、ファイルの履歴があります(最新のコミットから最も古いコミットまで)。

{
"pagelen": 50,
"values": [
    {
      "links": {
        "self": {
          "href": "https://api.bitbucket.org/2.0/repositories/<user>/<repo>/src/<hash>/<path_file>"
        },
        "meta": {
          "href": "https://api.bitbucket.org/2.0/repositories/<user>/<repo>/src/<HEAD>/<path_file>?format=meta"
        },
        "history": {
          "href": "https://api.bitbucket.org/2.0/repositories/<user>/<repo>/filehistory/<HEAD>/<path_file>"
        }
      },
      "commit": {
        "hash": "<HEAD>",
        "type": "commit",
        "links": {
          "self": {
            "href": "https://api.bitbucket.org/2.0/repositories/<user>/<repo>/commit/<HEAD>"
          },
          "html": {
            "href": "https://bitbucket.org/<user>/<repo>/commits/<HEAD>"
          }
        }
      },
      "attributes": [],
      "path": "<path_file>",
      "type": "commit_file",
      "size": 31
    },
    {
      "links": {
        "self": {
          "href": "https://api.bitbucket.org/2.0/repositories/<user>/<repo>/src/<HEAD~1>/<path_file>"
        },
        "meta": {
          "href": "https://api.bitbucket.org/2.0/repositories/<user>/<repo>/src/<HEAD~1>/<path_file>?format=meta"
        },
        "history": {
          "href": "https://api.bitbucket.org/2.0/repositories/<user>/<repo>/filehistory/<HEAD~1>/<path_file>"
        }
      },
      "commit": {
        "hash": "<HEAD~1>",
        "type": "commit",
        "links": {
          "self": {
            "href": "https://api.bitbucket.org/2.0/repositories/<user>/<repo>/commit/<HEAD~1>"
          },
          "html": {
            "href": "https://bitbucket.org/<user>/<repo>/commits/<HEAD~1>"
          }
        }
      },
      "attributes": [],
      "path": "<path_file>",
      "type": "commit_file",
      "size": 20
    }
  ],
  "page": 1
}

ここで、values> links> selfは、curl <link>またはfile_get_contents(<link>)を使用して取得できる履歴内のファイルを提供します。

最終的には、コマンドラインから次を使用してフィルタリングできます。

 curl https://api.bitbucket.org/2.0/repositories/<user>/<repo>/filehistory/<branch>/<path_file>?fields=values.links.self

pHPでは、配列$dataforeachループを作成します。

注:<path_file>/がある場合は、%2Fで変換する必要があります。

こちらのドキュメントをご覧ください: https://developer.atlassian.com/bitbucket/api/2/reference/resource/repositories/%7Busername%7D/%7Brepo_slug%7D/filehistory/%7Bnode%7D/%7Bpath %7D

1
tormec