webentwicklung-frage-antwort-db.com.de

Wie greife ich in BitBucket auf die vollständige Quelle des alten Commits zu?

Ich hasse es, das im Fluss zu fragen, aber für mein ganzes Leben kann ich weder herausfinden noch die Dokumentation finden, wie man auf die Quelle eines alten Commits im neuen Bit Bucket-Format zugreift. Ist das überhaupt noch möglich? So frustriert!

218
Ser Pounce

Sie möchten eine ältere Version über die BitBucket-Weboberfläche herunterladen, ohne einen Mercurial/Git-Client zu verwenden.

Überprüfen Sie diese verwandte Frage . In den Kommentaren sagt jemand, dass es keine Möglichkeit gibt, das zu tun. Zum Glück stimmt das nicht ganz.

Beim Navigieren auf den BitBucket-Projektseiten habe ich keinen Link zum Herunterladen einer beliebigen Version gefunden. Es gibt Links zum Herunterladen bestimmter Tags im Format:

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

Aber indem Sie die obige URL ein wenig ändern, ändern Sie den Tag-Namen durch den Commit-Hash wie folgt:

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

Sie können tatsächlich eine bestimmte Version herunterladen.

Wie von Rakka Rage in einem Kommentar erwähnt, ersetzt .tar.gz durch .Zip funktioniert auch.

361
Rudy Matela

Ich habe versucht herauszufinden, ob es möglich ist, den Code eines früheren Commits wie auf GitHub zu durchsuchen, und es hat mich hierher gebracht. Ich habe die Informationen verwendet, die ich hier gefunden habe, und nachdem ich mit den URLs herumgespielt habe, habe ich tatsächlich einen Weg gefunden, auch den Code von alten Commits zu durchsuchen.

Wenn Sie Ihren Code durchsuchen, lautet die URL folgendermaßen:

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

und indem Sie am Ende einen Commit-Hash wie folgt hinzufügen:

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

Sie können den Code zum Zeitpunkt des Commits durchsuchen. Ich verstehe nicht, warum es keine Dropdown-Box für die direkte Auswahl eines Commits gibt, die Funktion ist bereits vorhanden. Seltsam.

193

Schritt 1

Step 1


Schritt 2

Step 2


Schritt 3

Step 3


Schritt 4

Step 4


Letzter Schritt

Final Step

168
Askar

Nur für den Fall, dass sich jemand in meinem Boot befindet, in dem keine dieser Antworten genau funktioniert hat, habe ich Folgendes getan.

Vielleicht ist unser hauseigener Bitbucket-Server etwas anders eingerichtet als die meisten anderen, aber hier ist die URL, die ich normalerweise aufrufen würde, um nur die Dateien im Hauptzweig anzuzeigen:

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

Wenn ich einen anderen Zweig als den Master aus dem Dropdown-Menü auswähle, erhalte ich Folgendes:

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

Also habe ich es versucht und es hat funktioniert:

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

Jetzt kann ich das gesamte Repo durchsuchen, wie es zum Zeitpunkt des Commits war.

19
Brent212

Tolle Antworten von vor ein paar Jahren. Jetzt hat Bitbucket es einfacher gemacht.

Markieren Sie das Commit, das Sie herunterladen möchten (wie in der Antwort von Rudy Matela erwähnt).

Gehen Sie dann zu Downloads und klicken Sie auf die Registerkarte "Tags". Sie erhalten mehrere Optionen zum Herunterladen.

Tag Downloads

10
LMSingh

Für den Datensatz können Sie auch URLs auf diese Weise spielen:

Wenn Sie die neueste Quelle durchsuchen, haben Sie Folgendes: https://bitbucket.org/my/repo/src/latestcommithash/my.file?at=master

Ändern Sie einfach den Commit-Hash und entfernen Sie den GET-Parameter: https://bitbucket.org/my/repo/src/wantedcommithash/my.file

Ich muss +1 @Hein A. Grønnestad oben geben: Es funktioniert alles und ich frage mich, warum in der GUI nichts vorhanden ist, um es zu verwenden.

8
neemzy
  1. Am einfachsten ist es, auf dieses Commit zu klicken und diesem Commit ein Tag hinzuzufügen. Ich habe das Tag 'last_commit' in dieses Commit aufgenommen

  2. Dann gehen Sie zu Downloads in der linken Ecke des Navigationsbereichs in Bit Bucket. Klicken Sie links auf Download

  3. Klicken Sie nun in der Navigationsleiste auf Tags und laden Sie die Zip-Datei von der Benutzeroberfläche herunter. Finden Sie Ihren Tag und laden Sie die Zip herunter
2

Sie können die Quelle der Datei bis zu einem bestimmten Commit anzeigen, indem Sie ?until=<sha-of-commit> In die URL (nach dem Dateinamen) einfügen.

1
Eugen

Ich weiß, es ist zu spät, aber mit API 2.0 ist das möglich

von der Kommandozeile mit:

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

oder in php mit:

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

dann haben Sie den Verlauf Ihrer Datei (vom letzten Commit bis zum ältesten):

{
"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
}

wobei values> links> self die Datei im aktuellen Verlauf bereitstellt, die Sie mit curl <link> oder file_get_contents(<link>) abrufen können .

Schließlich können Sie von der Befehlszeile aus filtern mit:

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

erstellen Sie in PHP einfach eine foreach -Schleife im Array $data.

Hinweis: Wenn <path_file> Einen / Hat, müssen Sie diesen in %2F Konvertieren.

Lesen Sie das Dokument hier: https://developer.atlassian.com/bitbucket/api/2/reference/resource/repositories/%7Busername%7D/%7Brepo_slug%7D/filehistory/%7Bnode%7D/%7Bpath % 7D

1
tormec