Je ne peux pas comprendre ou trouver la documentation sur la façon d'accéder à la source d'un ancien commit dans le nouveau format Bit Bucket. Est-ce encore possible?
Je ne peux pas comprendre ou trouver la documentation sur la façon d'accéder à la source d'un ancien commit dans le nouveau format Bit Bucket. Est-ce encore possible?
Réponses:
Je comprends que vous souhaitez télécharger une ancienne version via l'interface Web BitBucket sans utiliser de client Mercurial / Git.
Vérifiez cette question connexe . Sur les commentaires, quelqu'un dit qu'il n'y a aucun moyen de le faire. Heureusement, ce n'est pas entièrement vrai.
En naviguant sur les pages du projet BitBucket, je n'ai trouvé aucun lien pour télécharger une version arbitraire. Il existe des liens pour télécharger des balises spécifiques, au format:
https://bitbucket.org/owner/repository/get/v0.1.2.tar.gz
Mais en ajustant un peu l'URL ci-dessus, en changeant le nom de la balise par le hachage de validation, comme:
https://bitbucket.org/owner/repository/get/A0B1C2D.tar.gz
Vous pouvez en fait télécharger une version spécifique.
Comme mentionné par Rakka Rage dans un commentaire, le remplacement .tar.gz
par des .zip
travaux aussi.
api.bitbucket.org
maintenant
bitbucket.org
J'essayais de comprendre s'il était possible de parcourir le code d'un commit précédent comme vous le pouvez sur GitHub et cela m'a amené ici. J'ai utilisé les informations que j'ai trouvées ici, et après avoir tripoté les URL, j'ai également trouvé un moyen de parcourir le code des anciens commits.
Lorsque vous parcourez votre code, l'URL ressemble à ceci:
https://bitbucket.org/user/repo/src/
et en ajoutant un hachage de validation à la fin comme ceci:
https://bitbucket.org/user/repo/src/a0328cb
Vous pouvez parcourir le code au point de cette validation. Je ne comprends pas pourquoi il n'y a pas de liste déroulante pour choisir directement un commit, la fonctionnalité est déjà là. Étrange.
https://bitbucket.org/lyro/evil/src/8cbfd51
mais si vous entrez hg clone https://bitbucket.org/lyro/evil/src/8cbfd51
, vous obtiendrez une révision aléatoire, peut-être la dernière.
hg clone -r8cbfd51 https://bitbucket.org/lyro/evil/src/
https://bitbucket.org/user/project/commits/0000000000000000000000000000000000000000?at=master
. Maintenant, changez simplement commits
l'URL en src
et vous parcourez la source complète à ce commit!
Juste au cas où quelqu'un se trouve dans mon bateau où aucune de ces réponses n'a fonctionné exactement, voici ce que j'ai fait.
Peut-être que notre serveur Bitbucket interne est configuré un peu différemment de la plupart, mais voici l'URL que j'irais normalement juste pour afficher les fichiers dans la branche principale:
https://<BITBUCKET_URL>/projects/<PROJECT_GROUP>/repos/<REPO_NAME>/browse
Si je sélectionne une branche différente de master dans le menu déroulant, j'obtiens ceci:
https://<BITBUCKET_URL>/projects/<PROJECT_GROUP>/repos/<REPO_NAME>/browse?at=refs%2Fheads%2F<BRANCH_NAME>
J'ai donc essayé de faire cela et cela a fonctionné:
https://<BITBUCKET_URL>/projects/<PROJECT_GROUP>/repos/<REPO_NAME>/browse?at=<COMMIT_ID>
Maintenant, je peux parcourir l'ensemble du référentiel tel qu'il était au moment de ce commit.
Excellentes réponses d'il y a quelques années. Maintenant, Bitbucket a rendu la tâche plus facile.
Marquez le commit que vous souhaitez télécharger (comme mentionné dans la réponse de Rudy Matela).
Ensuite, rendez-vous sur Téléchargements et cliquez sur l'onglet "Tags" et vous aurez plusieurs options de téléchargement.
Pour mémoire, vous pouvez également jouer avec les URL de cette façon:
Lorsque vous parcourez la dernière source, vous avez quelque chose comme:
https://bitbucket.org/my/repo/src/latestcommithash/my.file?at=master
Modifiez simplement le hachage de validation et supprimez le paramètre GET:
https://bitbucket.org/my/repo/src/wantedcommithash/my.file
Je suis arrivé à +1 @Hein A. Grønnestad ci-dessus: tout fonctionne, se demandant vraiment pourquoi il n'y a rien dans l'interface graphique pour l'utiliser.
Le moyen le plus simple consiste à cliquer sur ce commit et à ajouter une balise à ce commit. J'ai inclus la balise 'last_commit' avec ce commit
Ensuite, accédez aux téléchargements dans le coin gauche de la navigation latérale dans le compartiment de bits. Cliquez sur télécharger dans la partie gauche
Je sais qu'il est trop tard, mais avec l'API 2.0, vous pouvez le faire
depuis la ligne de commande avec:
curl https://api.bitbucket.org/2.0/repositories/<user>/<repo>/filehistory/<branch>/<path_file>
ou en php avec:
$data = json_decode(file_get_contents("https://api.bitbucket.org/2.0/repositories/<user>/<repo>/filehistory/<branch>/<path_file>", true));
alors vous avez l'historique de votre fichier (du commit le plus récent au plus ancien):
{
"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
}
où values
> links
> self
fournit le fichier au moment de l'histoire que vous pouvez le récupérer avec curl <link>
ou file_get_contents(<link>)
.
Finalement, à partir de la ligne de commande, vous pouvez filtrer avec:
curl https://api.bitbucket.org/2.0/repositories/<user>/<repo>/filehistory/<branch>/<path_file>?fields=values.links.self
en php, faites juste une foreach
boucle sur le tableau $data
.
Remarque: si vous en avez <path_file>
un, /
vous devez le convertir %2F
.
Voir le doc ici: https://developer.atlassian.com/bitbucket/api/2/reference/resource/repositories/%7Busername%7D/%7Brepo_slug%7D/filehistory/%7Bnode%7D/%7Bpath%7D