새로운 Bit Bucket 형식의 이전 커밋 소스에 액세스하는 방법에 대한 설명서를 찾거나 찾을 수 없습니다. 더 이상 가능합니까?
새로운 Bit Bucket 형식의 이전 커밋 소스에 액세스하는 방법에 대한 설명서를 찾거나 찾을 수 없습니다. 더 이상 가능합니까?
답변:
Mercurial / Git 클라이언트를 사용하지 않고 BitBucket 웹 인터페이스를 통해 이전 버전을 다운로드하려고합니다.
이 관련 질문을 확인하십시오 . 의견에 따르면 누군가 그렇게 할 방법이 없다고 말합니다. 다행히도 그것은 사실이 아닙니다.
BitBucket 프로젝트 페이지를 탐색하여 임의 버전을 다운로드 할 수있는 링크가 없습니다. 다음과 같은 형식으로 특정 태그를 다운로드 할 수있는 링크가 있습니다.
https://bitbucket.org/owner/repository/get/v0.1.2.tar.gz
그러나 위의 URL을 약간 조정하여 커밋 해시로 태그 이름을 변경하면 다음과 같습니다.
https://bitbucket.org/owner/repository/get/A0B1C2D.tar.gz
실제로 특정 버전을 다운로드 할 수 있습니다.
에서 언급 한 바와 같이 락카 분노 교체, 코멘트에 .tar.gz
의해 .zip
너무 작품.
api.bitbucket.org
지금
bitbucket.org
GitHub에서 할 수있는 것처럼 이전 커밋 코드를 탐색 할 수 있는지 알아 내려고 노력 중입니다. 나는 여기에서 찾은 정보를 사용했고 URL을 찾은 후에 실제로 오래된 커밋 코드를 탐색하는 방법을 찾았습니다.
코드를 탐색 할 때 URL은 다음과 같습니다.
https://bitbucket.org/user/repo/src/
그리고 끝에 다음과 같이 commit hash를 추가하면 :
https://bitbucket.org/user/repo/src/a0328cb
해당 커밋 시점에서 코드를 찾아 볼 수 있습니다. 커밋을 직접 선택하기위한 드롭 다운 상자가없는 이유를 이해하지 못합니다.이 기능은 이미 있습니다. 이상한.
https://bitbucket.org/lyro/evil/src/8cbfd51
있지만을 입력 hg clone https://bitbucket.org/lyro/evil/src/8cbfd51
하면 임의의 수정본, 아마도 최신 버전이 표시됩니다.
hg clone -r8cbfd51 https://bitbucket.org/lyro/evil/src/
https://bitbucket.org/user/project/commits/0000000000000000000000000000000000000000?at=master
. 이제 commits
URL을 변경 src
하면이 커밋에서 전체 소스를 탐색하고 있습니다!
이 답변 중 어느 것도 정확하게 작동하지 않은 사람이 내 보트에있는 경우를 대비하여 여기 내가 한 일이 있습니다.
아마도 우리의 사내 Bitbucket 서버는 대부분의 것과 약간 다르게 설정되지만 마스터 브랜치에서 파일을보기 위해 일반적으로 사용하는 URL은 다음과 같습니다.
https://<BITBUCKET_URL>/projects/<PROJECT_GROUP>/repos/<REPO_NAME>/browse
드롭 다운 메뉴에서 master와 다른 지점을 선택하면 다음과 같이 나타납니다.
https://<BITBUCKET_URL>/projects/<PROJECT_GROUP>/repos/<REPO_NAME>/browse?at=refs%2Fheads%2F<BRANCH_NAME>
그래서 나는 이것을 시도했고 효과가 있었다 :
https://<BITBUCKET_URL>/projects/<PROJECT_GROUP>/repos/<REPO_NAME>/browse?at=<COMMIT_ID>
이제 커밋 당시와 마찬가지로 전체 리포지토리를 찾아 볼 수 있습니다.
몇 년 전에 큰 답변. 이제 Bitbucket이 더 쉬워졌습니다.
Rudy Matela의 답변에서 언급 한대로 다운로드하려는 커밋에 태그를 지정하십시오.
그런 다음 다운로드로 이동하여 "태그"탭을 클릭하면 여러 다운로드 옵션이 제공됩니다.
가장 쉬운 방법은 해당 커밋을 클릭하고 해당 커밋에 태그를 추가하는 것입니다. 이 커밋에 'last_commit'태그를 포함 시켰습니다.
비트 버킷에서 측면 탐색 메뉴의 왼쪽 모서리에있는 다운로드로 이동하는 것보다. 왼쪽에서 다운로드를 클릭하십시오
너무 늦었지만 API 2.0을 사용하면 할 수 있습니다.
명령 줄에서
curl https://api.bitbucket.org/2.0/repositories/<user>/<repo>/filehistory/<branch>/<path_file>
또는 PHP에서 :
$data = json_decode(file_get_contents("https://api.bitbucket.org/2.0/repositories/<user>/<repo>/filehistory/<branch>/<path_file>", true));
그런 다음 가장 최근의 커밋에서 가장 오래된 커밋까지 파일 히스토리가 있습니다.
{
"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
}
여기서 values
> links
>은 self
역사의 순간에 파일을 제공합니다 당신이 그것을 검색 할 수있는 curl <link>
또는file_get_contents(<link>)
.
결국, 명령 행에서 다음을 사용하여 필터링 할 수 있습니다.
curl https://api.bitbucket.org/2.0/repositories/<user>/<repo>/filehistory/<branch>/<path_file>?fields=values.links.self
PHP foreach
에서 배열에 루프를 만듭니다.$data
.
참고 : 경우 <path_file>
가있는 /
당신은 그것을 변환해야%2F
.
다음 문서를 참조하십시오 : https://developer.atlassian.com/bitbucket/api/2/reference/resource/repositories/%7Busername%7D/%7Brepo_slug%7D/filehistory/%7Bnode%7D/%7Bpath%7D