Não consigo descobrir ou encontrar a documentação sobre como acessar a fonte de um commit antigo no novo formato Bit Bucket. Isso ainda é possível?
Não consigo descobrir ou encontrar a documentação sobre como acessar a fonte de um commit antigo no novo formato Bit Bucket. Isso ainda é possível?
Respostas:
Entendo que você deseja fazer o download de uma versão mais antiga através da interface da Web BitBucket sem usar um cliente Mercurial / Git.
Verifique esta questão relacionada . Nos comentários, alguém diz que não há como fazer isso. Felizmente, isso não é totalmente verdade.
Navegando nas páginas do projeto BitBucket, não encontrei nenhum link para baixar uma versão arbitrária. Existem links para baixar tags específicas, no formato:
https://bitbucket.org/owner/repository/get/v0.1.2.tar.gz
Mas, ajustando um pouco a URL acima, alterando o nome da tag pelo hash de confirmação, como:
https://bitbucket.org/owner/repository/get/A0B1C2D.tar.gz
Você pode realmente baixar uma versão específica.
Como mencionado por Rakka Rage em um comentário, substituindo .tar.gz
por .zip
obras também.
api.bitbucket.org
agora #
bitbucket.org
Eu estava tentando descobrir se é possível procurar o código de um commit anterior como você pode no GitHub e isso me trouxe aqui. Usei as informações que encontrei aqui e, depois de mexer nos URLs, também encontrei uma maneira de navegar pelo código de confirmações antigas.
Quando você está navegando no seu código, o URL é algo como:
https://bitbucket.org/user/repo/src/
e adicionando um hash de confirmação no final como este:
https://bitbucket.org/user/repo/src/a0328cb
Você pode procurar o código no ponto desse commit. Não entendo por que não há uma caixa suspensa para escolher um commit diretamente, o recurso já está lá. Estranho.
https://bitbucket.org/lyro/evil/src/8cbfd51
mas se você entrar hg clone https://bitbucket.org/lyro/evil/src/8cbfd51
, receberá uma revisão aleatória, talvez a mais recente.
hg clone -r8cbfd51 https://bitbucket.org/lyro/evil/src/
https://bitbucket.org/user/project/commits/0000000000000000000000000000000000000000?at=master
. Agora, basta alterar commits
o URL para src
e você está navegando na fonte completa neste commit!
Caso alguém esteja no meu barco, onde nenhuma dessas respostas funcionou exatamente, eis o que eu fiz.
Talvez o nosso servidor Bitbucket interno esteja configurado de maneira um pouco diferente da maioria, mas aqui está a URL que eu normalmente acessaria apenas para exibir os arquivos no ramo mestre:
https://<BITBUCKET_URL>/projects/<PROJECT_GROUP>/repos/<REPO_NAME>/browse
Se eu selecionar uma ramificação diferente da master no menu suspenso, obtenho o seguinte:
https://<BITBUCKET_URL>/projects/<PROJECT_GROUP>/repos/<REPO_NAME>/browse?at=refs%2Fheads%2F<BRANCH_NAME>
Então, eu tentei fazer isso e funcionou:
https://<BITBUCKET_URL>/projects/<PROJECT_GROUP>/repos/<REPO_NAME>/browse?at=<COMMIT_ID>
Agora posso procurar o repositório inteiro como estava no momento da confirmação.
Ótimas respostas de alguns anos atrás. Agora, o Bitbucket tornou mais fácil.
Marque o Commit que você deseja baixar (conforme mencionado na resposta de Rudy Matela).
Então vá para Downloads e clique na guia "Tags" e você terá várias opções para download.
Para o registro, você também pode brincar com URLs desta maneira:
Ao navegar na fonte mais recente, você tem algo como:
https://bitbucket.org/my/repo/src/latestcommithash/my.file?at=master
Simplesmente altere o hash de confirmação e remova o parâmetro GET:
https://bitbucket.org/my/repo/src/wantedcommithash/my.file
Cheguei a +1 em Hein A. Grønnestad acima: está tudo funcionando, realmente me perguntando por que não há nada na GUI para usá-lo.
A maneira mais fácil é clicar nessa confirmação e adicionar uma tag a essa confirmação. Eu incluí a tag 'last_commit' nesta confirmação
Em seguida, vá para downloads no canto esquerdo da navegação lateral no bloco de bits. Clique no download no lado esquerdo
Eu sei que é tarde demais, mas com a API 2.0 você pode fazer
da linha de comando com:
curl https://api.bitbucket.org/2.0/repositories/<user>/<repo>/filehistory/<branch>/<path_file>
ou em php com:
$data = json_decode(file_get_contents("https://api.bitbucket.org/2.0/repositories/<user>/<repo>/filehistory/<branch>/<path_file>", true));
então você tem o histórico do seu arquivo (da confirmação mais recente à mais antiga):
{
"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
}
onde values
> links
> self
fornece o arquivo no momento na história que você pode recuperá-la com curl <link>
ou file_get_contents(<link>)
.
Eventualmente, na linha de comando, você pode filtrar com:
curl https://api.bitbucket.org/2.0/repositories/<user>/<repo>/filehistory/<branch>/<path_file>?fields=values.links.self
em php, basta fazer um foreach
loop na matriz $data
.
Nota: se <path_file>
tiver um, /
você deve convertê-lo %2F
.
Consulte o documento aqui: https://developer.atlassian.com/bitbucket/api/2/reference/resource/repositories/%7Busername%7D/%7Brepo_slug%7D/filehistory/%7Bnode%7D/%7Bpath%7D