Ich kann die Dokumentation zum Zugriff auf die Quelle eines alten Commits im neuen Bit Bucket-Format nicht herausfinden oder finden. Ist das überhaupt noch möglich?
Ich kann die Dokumentation zum Zugriff auf die Quelle eines alten Commits im neuen Bit Bucket-Format nicht herausfinden oder finden. Ist das überhaupt noch möglich?
Antworten:
Ich verstehe, dass Sie eine ältere Version über die BitBucket-Weboberfläche herunterladen möchten, ohne einen Mercurial / Git-Client zu verwenden.
Überprüfen Sie diese verwandte Frage . In den Kommentaren sagt jemand, dass es keine Möglichkeit gibt, dies 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 folgenden Format:
https://bitbucket.org/owner/repository/get/v0.1.2.tar.gz
Aber indem Sie die obige URL ein wenig anpassen, ändern Sie den Tag-Namen durch den Commit-Hash wie:
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 er auch .tar.gz
durch .zip
Werke.
api.bitbucket.org
jetzt sein
bitbucket.org
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 alter Commits zu durchsuchen.
Wenn Sie Ihren Code durchsuchen, lautet die URL wie folgt:
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 an der Stelle dieses Commits durchsuchen. Ich verstehe nicht, warum es kein Dropdown-Feld für die direkte Auswahl eines Commits gibt. Die Funktion ist bereits vorhanden. Seltsam.
https://bitbucket.org/lyro/evil/src/8cbfd51
aber wenn Sie eingeben hg clone https://bitbucket.org/lyro/evil/src/8cbfd51
, erhalten Sie eine zufällige Überarbeitung, möglicherweise die neueste.
hg clone -r8cbfd51 https://bitbucket.org/lyro/evil/src/
https://bitbucket.org/user/project/commits/0000000000000000000000000000000000000000?at=master
. Ändern Sie jetzt einfach commits
die URL in src
und Sie durchsuchen die vollständige Quelle bei diesem Commit!
Nur für den Fall, dass jemand in meinem Boot ist, in dem keine dieser Antworten genau funktioniert hat, habe ich Folgendes getan.
Vielleicht ist unser interner Bitbucket-Server etwas anders eingerichtet als die meisten anderen, aber hier ist die URL, unter der ich normalerweise nur die Dateien im Hauptzweig anzeigen würde:
https://<BITBUCKET_URL>/projects/<PROJECT_GROUP>/repos/<REPO_NAME>/browse
Wenn ich aus dem Dropdown-Menü einen anderen Zweig als Master auswähle, wird Folgendes angezeigt:
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 so durchsuchen, wie es zum Zeitpunkt dieses Commits war.
Tolle Antworten von vor ein paar Jahren. Jetzt hat Bitbucket es einfacher gemacht.
Kennzeichnen 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.
Für die Aufzeichnung können Sie URLs auch folgendermaßen herumspielen:
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 habe oben +1 @Hein A. Grønnestad erreicht: Es funktioniert alles und ich frage mich wirklich, warum die GUI nichts enthält, um es zu verwenden.
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
Dann gehen Sie zu den Downloads in der linken Ecke des Seitennavigations im Bit-Eimer. Klicken Sie links auf Download
Ich weiß, dass es zu spät ist, aber mit API 2.0 können Sie dies tun
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 bis zum ältesten Commit):
{
"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
}
wo values
> links
> self
liefert die Datei zur Zeit in der Geschichte , die Sie mit abrufen können curl <link>
oder file_get_contents(<link>)
.
Über die Befehlszeile können Sie schließlich filtern mit:
curl https://api.bitbucket.org/2.0/repositories/<user>/<repo>/filehistory/<branch>/<path_file>?fields=values.links.self
In PHP machen Sie einfach eine foreach
Schleife auf dem Array $data
.
Hinweis: Wenn a vorhanden <path_file>
ist /
, müssen Sie es konvertieren %2F
.
Das Dokument finden Sie hier: https://developer.atlassian.com/bitbucket/api/2/reference/resource/repositories/%7Busername%7D/%7Brepo_slug%7D/filehistory/%7Bnode%7D/%7Bpath%7D