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


226

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


1
どんな新しいフォーマット?MercurialまたはGitを使用していますか?MercurialまたはGitクライアントを使用して、古いバージョンに更新するだけです。
Erno、2013年

回答:


369

Mercurial / Gitクライアントを使用せずに、BitBucket Webインターフェイスを介して古いバージョンをダウンロードすることを希望しています。

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

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

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

しかし、上のURLを少し調整して、次のようにタグ名をcommitハッシュで変更します。

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

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

Rakka Rageがコメントで述べたように.tar.gz.zip作品でも置き換えます。


上記のリンクをAndroid Studioターミナルで使用して、コミットのクローンを作成できますか?もしそうなら、あなたは基本的な端末コードを提供できますか?
tccpg288

1
私は彼らが彼らのウェブサイトでこれを見せて欲しいので、それは明白でした。
2017年

1
なぜそれが関係ないのですか?私はもう一度それをテストしました(2018-08-06)とそれはまだ動作します。「社内」のBitBucketサーバーの問題でしょうか。これをbitbucket.orgサーバーでテストしました。
Rudy Matela

api.bitbucket.org今でなければなりません
Alexander Mills

1
それでもまだ動作することを確認できますbitbucket.org
Vely

202

以前のコミットのコードをGitHubでできるように閲覧できるかどうかを考えていたところ、ここにたどり着きました。私はここで見つけた情報を使用し、URLをいじった後、実際に古いコミットのコードを閲覧する方法も見つけました。

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

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

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

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

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


2
これはまさに私が必要としたものです。BitbucketのサイトからこのURLへの直接リンクがありません。
Johnny

残念ながら、これは機能しません。またはむしろ働くが、部分的に。たとえば、閲覧することはできますhttps://bitbucket.org/lyro/evil/src/8cbfd51が、と入力するとhg clone https://bitbucket.org/lyro/evil/src/8cbfd51、ランダムなリビジョン、おそらく最新のものを取得します。
Hi-Angel

回避策を見つけた、それはhg clone -r8cbfd51 https://bitbucket.org/lyro/evil/src/
Hi-Angel

3
コピーして貼り付けたくない場合は、特定のコミットを参照すると、URLはのようになりますhttps://bitbucket.org/user/project/commits/0000000000000000000000000000000000000000?at=master。さて、commitsURLをに変更するsrcと、このコミットで完全なソースを閲覧できます!
Peter

176

ステップ1

ステップ1


ステップ2

ステップ2


ステップ3

ステップ3


ステップ4

ステップ4


最終段階

最終段階


2
@ManojGこれが私からのものです。したがって、明らかに混乱する方法ですが、特定のコミットでツリー全体に到達する方法があります。
マルコム2015年

2
この回答が大好きです。注:ファイルに移動して、ドロップダウンを使用することもできます。ありがとうございました!
mattdlockyer 2016年

3
この回答よりも驚くべきことは、ボタンクリックでは実行できないという事実です...いくつかのことは本当に驚くべきことです...
NunoGonçalves16年

この手順では解決しませんでした。結果は何でしたか。@ mattdlockyerからの回答、ファイルを選択し、ドロップダウンをクリックして古いコミットを選択してから、oscar投稿の最後の画像のようにリポジトリのリンクに戻ります
user2582318

1
これはすべて機能しますが、ダウンロードすると、常に最新のコミットになります。私はそれを間違っていますか、それともそのようですか?
Jay Mehta 2017年

29

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

おそらく、社内のBitbucketサーバーのセットアップは他のサーバーとは少し異なりますが、masterブランチのファイルを表示するためだけに通常アクセスする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>

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


6
この答えは、実際に機能する唯一のものです。より人気のあるものは、古いバージョンのBitbucketを参照しているようです
Klas Mellbourn

9

数年前からの素晴らしい答え。現在、Bitbucketはそれをより簡単にしました。

ダウンロードするコミットにタグを付けます(Rudy Matelaの回答で述べたとおり)。

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

タグのダウンロード


1
これは最も簡単な方法でした。タグの問題を取得できなかった場合は、特定のコミットをクリックすると、右上にソース、ブランチ、コミット、タグが表示されます。そこにタグを追加してから、ダウンロードしてください。
PGMacDesign

8

参考までに、この方法でURLをいじることもできます。

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

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

上記の+1 @Hein A.Grønnestadにアクセスしました。これはすべて機能しており、GUIにそれを使用する理由がないのはなぜでしょうか。


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

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

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

1

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


1

手遅れだと知っていますが、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ではforeach、配列にループを作成するだけ$dataです。

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

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

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.