Non riesco a capire o trovare la documentazione su come accedere alla fonte di un vecchio commit nel nuovo formato Bit Bucket. È ancora più possibile?
Non riesco a capire o trovare la documentazione su come accedere alla fonte di un vecchio commit nel nuovo formato Bit Bucket. È ancora più possibile?
Risposte:
Comprendo che desideri scaricare una versione precedente tramite l'interfaccia Web di BitBucket senza utilizzare un client Mercurial / Git.
Controlla questa domanda correlata . Sui commenti, qualcuno dice che non c'è modo di farlo. Fortunatamente, non è del tutto vero.
Navigando sulle pagine del progetto BitBucket, non ho trovato alcun link per scaricare una versione arbitraria. Esistono collegamenti per scaricare tag specifici, nel formato:
https://bitbucket.org/owner/repository/get/v0.1.2.tar.gz
Ma modificando un po 'l'URL sopra, cambiando il nome del tag con l'hash di commit, come:
https://bitbucket.org/owner/repository/get/A0B1C2D.tar.gz
Puoi effettivamente scaricare una versione specifica.
Come menzionato da Rakka Rage in un commento, sostituisce anche .tar.gz
con le .zip
opere.
api.bitbucket.org
ora
bitbucket.org
Stavo cercando di capire se è possibile sfogliare il codice di un commit precedente come puoi su GitHub e mi ha portato qui. Ho usato le informazioni che ho trovato qui, e dopo aver armeggiato con gli URL, ho effettivamente trovato un modo per sfogliare anche il codice dei vecchi commit.
Durante la navigazione del codice, l'URL è simile al seguente:
https://bitbucket.org/user/repo/src/
e aggiungendo un hash di commit alla fine in questo modo:
https://bitbucket.org/user/repo/src/a0328cb
Puoi sfogliare il codice al punto di quel commit. Non capisco perché non esiste una casella a discesa per la scelta diretta di un commit, la funzione è già lì. Strano.
https://bitbucket.org/lyro/evil/src/8cbfd51
ma se entri hg clone https://bitbucket.org/lyro/evil/src/8cbfd51
, otterrai una revisione casuale, forse l'ultima.
hg clone -r8cbfd51 https://bitbucket.org/lyro/evil/src/
https://bitbucket.org/user/project/commits/0000000000000000000000000000000000000000?at=master
. Ora, basta cambiare commits
l'URL src
e stai sfogliando la fonte completa a questo commit!
Nel caso in cui qualcuno sia nella mia barca in cui nessuna di queste risposte ha funzionato esattamente, ecco cosa ho fatto.
Forse il nostro server Bitbucket interno è impostato in modo leggermente diverso rispetto alla maggior parte, ma ecco l'URL che normalmente andrei solo per visualizzare i file nel ramo principale:
https://<BITBUCKET_URL>/projects/<PROJECT_GROUP>/repos/<REPO_NAME>/browse
Se seleziono un ramo diverso dal master dal menu a discesa, ottengo questo:
https://<BITBUCKET_URL>/projects/<PROJECT_GROUP>/repos/<REPO_NAME>/browse?at=refs%2Fheads%2F<BRANCH_NAME>
Quindi ho provato a farlo e ha funzionato:
https://<BITBUCKET_URL>/projects/<PROJECT_GROUP>/repos/<REPO_NAME>/browse?at=<COMMIT_ID>
Ora posso sfogliare l'intero repository com'era al momento del commit.
Grandi risposte da un paio d'anni fa. Ora Bitbucket ha reso più semplice.
Contrassegna il commit che desideri scaricare (come indicato nella risposta di Rudy Matela).
Quindi vai su Download e fai clic sulla scheda "Tag" e otterrai più opzioni per il download.
Per la cronaca, puoi anche giocare attorno agli URL in questo modo:
Quando sfogli l'ultima fonte, hai qualcosa del tipo:
https://bitbucket.org/my/repo/src/latestcommithash/my.file?at=master
Basta cambiare l'hash di commit e rimuovere il parametro GET:
https://bitbucket.org/my/repo/src/wantedcommithash/my.file
Devo fare +1 su @Hein A. Grønnestad sopra: funziona tutto, chiedendosi davvero perché non ci sia nulla nella GUI per usarlo.
Il modo più semplice è fare clic su quel commit e aggiungere un tag a quel commit. Ho incluso il tag "last_commit" con questo commit
Quindi vai ai download nell'angolo sinistro del navigatore laterale nel bucket bit. Fai clic su download nella parte sinistra
So che è troppo tardi, ma con API 2.0 puoi farlo
dalla riga di comando con:
curl https://api.bitbucket.org/2.0/repositories/<user>/<repo>/filehistory/<branch>/<path_file>
o in php con:
$data = json_decode(file_get_contents("https://api.bitbucket.org/2.0/repositories/<user>/<repo>/filehistory/<branch>/<path_file>", true));
allora hai la cronologia del tuo file (dal commit più recente al più vecchio):
{
"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
}
dove values
> links
> self
fornisce il file in questo momento della storia, che è possibile recuperare con curl <link>
o file_get_contents(<link>)
.
Alla fine, dalla riga di comando puoi filtrare con:
curl https://api.bitbucket.org/2.0/repositories/<user>/<repo>/filehistory/<branch>/<path_file>?fields=values.links.self
in php, basta fare un foreach
loop sull'array $data
.
Nota: se <path_file>
ha un /
devi convertirlo in %2F
.
Vedi il documento qui: https://developer.atlassian.com/bitbucket/api/2/reference/resource/repositories/%7Busername%7D/%7Brepo_slug%7D/filehistory/%7Bnode%7D/%7Bpath%7D