Answers:
我了解您想通过BitBucket Web界面下载旧版本,而不使用Mercurial / Git客户端。
检查此相关问题。关于评论,有人说没有办法。幸运的是,这并不完全正确。
通过在BitBucket项目页面上导航,我没有找到下载任意版本的链接。有用于下载特定标签的链接,格式为:
https://bitbucket.org/owner/repository/get/v0.1.2.tar.gz
但是通过稍微调整上面的URL,通过提交哈希来更改标签名称,例如:
https://bitbucket.org/owner/repository/get/A0B1C2D.tar.gz
您实际上可以下载特定版本。
正如Rakka Rage在评论中提到的那样,也.tar.gz
被.zip
作品取代。
api.bitbucket.org
现在
bitbucket.org
我试图找出是否有可能像在GitHub上那样浏览早期提交的代码,并将它带到这里。我使用了在这里找到的信息,并且在摆弄了URL之后,实际上还找到了一种浏览旧提交代码的方法。
当您浏览代码时,URL类似于:
https://bitbucket.org/user/repo/src/
并在末尾添加提交哈希,如下所示:
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服务器的设置与大多数服务器有所不同,但这是我通常用来查看master分支中文件的URL:
https://<BITBUCKET_URL>/projects/<PROJECT_GROUP>/repos/<REPO_NAME>/browse
如果从下拉菜单中选择与主分支不同的分支,则会得到以下信息:
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>
现在,我可以浏览提交时的整个存储库。
最简单的方法是单击该提交并向该提交添加标签。 我已在此提交中包含标签“ 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
在array上循环即可$data
。
注意:如果<path_file>
有/
,则必须将其转换为%2F
。
在此处查看文档:https : //developer.atlassian.com/bitbucket/api/2/reference/resource/repositories/%7Busername%7D/%7Brepo_slug%7D/filehistory/%7Bnode%7D/%7Bpath%7D