No puedo entender ni encontrar la documentación sobre cómo acceder a la fuente de una confirmación anterior en el nuevo formato Bit Bucket. ¿Es esto posible?
No puedo entender ni encontrar la documentación sobre cómo acceder a la fuente de una confirmación anterior en el nuevo formato Bit Bucket. ¿Es esto posible?
Respuestas:
Entiendo que desea descargar una versión anterior a través de la interfaz web de BitBucket sin usar un cliente Mercurial / Git.
Verifique esta pregunta relacionada . En los comentarios, alguien dice que no hay forma de hacerlo. Afortunadamente, eso no es del todo cierto.
Al navegar en las páginas del proyecto BitBucket, no encontré ningún enlace para descargar una versión arbitraria. Hay enlaces para descargar etiquetas específicas, en el formato:
https://bitbucket.org/owner/repository/get/v0.1.2.tar.gz
Pero ajustando un poco la URL anterior, cambiando el nombre de la etiqueta por el hash de confirmación, como:
https://bitbucket.org/owner/repository/get/A0B1C2D.tar.gz
De hecho, puede descargar una versión específica.
Como lo menciona Rakka Rage en un comentario, también se reemplaza .tar.gz
por .zip
obras.
api.bitbucket.org
ahora
bitbucket.org
Estaba tratando de averiguar si es posible navegar por el código de una confirmación anterior como puedes en GitHub y me trajo aquí. Utilicé la información que encontré aquí, y después de jugar con las URL, en realidad también encontré una manera de buscar el código de las confirmaciones antiguas.
Cuando navega por su código, la URL es algo así como:
https://bitbucket.org/user/repo/src/
y agregando un hash de confirmación al final como este:
https://bitbucket.org/user/repo/src/a0328cb
Puede examinar el código en el punto de esa confirmación. No entiendo por qué no hay un cuadro desplegable para elegir una confirmación directamente, la función ya está allí. Extraño.
https://bitbucket.org/lyro/evil/src/8cbfd51
, pero si se introduce hg clone https://bitbucket.org/lyro/evil/src/8cbfd51
, se obtendría alguna revisión al azar, tal vez la última.
hg clone -r8cbfd51 https://bitbucket.org/lyro/evil/src/
https://bitbucket.org/user/project/commits/0000000000000000000000000000000000000000?at=master
. Ahora, solo cambie commits
la url a src
y está navegando por la fuente completa en este commit.
En caso de que alguien esté en mi bote donde ninguna de estas respuestas funcionó exactamente, esto es lo que hice.
Quizás nuestro servidor interno de Bitbucket esté configurado de manera un poco diferente a la mayoría, pero aquí está la URL a la que normalmente iría solo para ver los archivos en la rama maestra:
https://<BITBUCKET_URL>/projects/<PROJECT_GROUP>/repos/<REPO_NAME>/browse
Si selecciono una rama diferente a la maestra del menú desplegable, obtengo esto:
https://<BITBUCKET_URL>/projects/<PROJECT_GROUP>/repos/<REPO_NAME>/browse?at=refs%2Fheads%2F<BRANCH_NAME>
Así que intenté hacer esto y funcionó:
https://<BITBUCKET_URL>/projects/<PROJECT_GROUP>/repos/<REPO_NAME>/browse?at=<COMMIT_ID>
Ahora puedo navegar por todo el repositorio tal como estaba en el momento de esa confirmación.
Grandes respuestas de hace un par de años. Ahora Bitbucket lo ha hecho más fácil.
Etiquete el Compromiso que desea descargar (como se menciona en la respuesta de Rudy Matela).
Luego dirígete a Descargas y haz clic en la pestaña "Etiquetas" y obtendrás múltiples opciones para descargar.
Para el registro, también puede jugar con las URL de esta manera:
Al navegar por la última fuente, tiene algo como:
https://bitbucket.org/my/repo/src/latestcommithash/my.file?at=master
Simplemente cambie el hash de confirmación y elimine el parámetro GET:
https://bitbucket.org/my/repo/src/wantedcommithash/my.file
Llegué a +1 @Hein A. Grønnestad arriba: todo funciona, realmente me pregunto por qué no hay nada en la GUI para usarlo.
La forma más fácil es hacer clic en esa confirmación y agregar una etiqueta a esa confirmación. He incluido la etiqueta 'last_commit' con este commit
Luego vaya a descargas en la esquina izquierda del navegador lateral en bit bucket. Haga clic en descargar en el lado izquierdo
Sé que es demasiado tarde, pero con API 2.0 puedes hacer
desde la línea de comando con:
curl https://api.bitbucket.org/2.0/repositories/<user>/<repo>/filehistory/<branch>/<path_file>
o en php con:
$data = json_decode(file_get_contents("https://api.bitbucket.org/2.0/repositories/<user>/<repo>/filehistory/<branch>/<path_file>", true));
entonces tiene el historial de su archivo (desde la confirmación más reciente hasta la más antigua):
{
"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
}
donde values
> links
> self
proporciona el archivo en el momento de la historia, que se puede recuperar con curl <link>
o file_get_contents(<link>)
.
Eventualmente, desde la línea de comando puede filtrar con:
curl https://api.bitbucket.org/2.0/repositories/<user>/<repo>/filehistory/<branch>/<path_file>?fields=values.links.self
en php, solo haz un foreach
bucle en la matriz $data
.
Nota: si <path_file>
tiene un /
tiene que convertirlo %2F
.
Vea el documento aquí: https://developer.atlassian.com/bitbucket/api/2/reference/resource/repositories/%7Busername%7D/%7Brepo_slug%7D/filehistory/%7Bnode%7D/%7Bpath%7D