Я не можу розібратися або знайти документацію щодо доступу до джерела старої комісії у новому форматі Bit Bucket. Це навіть можливо вже?
Я не можу розібратися або знайти документацію щодо доступу до джерела старої комісії у новому форматі Bit Bucket. Це навіть можливо вже?
Відповіді:
Я розумію, що ви хочете завантажити старішу версію через веб-інтерфейс BitBucket без використання клієнта Mercurial / Git.
Перевірте це пов'язане питання . На коментарі хтось каже, що не можна цього зробити. На щастя, це не зовсім вірно.
Перебуваючи на сторінках проекту 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/
і додавши хеш комітів на завершення так:
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
Якщо я виберіть інше відділення, ніж головне, зі спадного меню, я отримаю таке:
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 зробив це легше.
Позначте команду, яку ви хочете завантажити (про що згадував у відповіді Руді Матела).
Потім перейдіть до розділу "Завантаження" та натисніть вкладку "Теги", і ви отримаєте кілька варіантів завантаження.
Для запису ви також можете іграти навколо URL-адрес таким чином:
Під час перегляду останнього джерела у вас є щось на кшталт:
https://bitbucket.org/my/repo/src/latestcommithash/my.file?at=master
Просто змініть хеш фіксації та видаліть параметр GET:
https://bitbucket.org/my/repo/src/wantedcommithash/my.file
Навело +1 @Hein A. Grønnestad вище: все працює, і справді цікаво, чому в GUI немає нічого, щоб його використовувати.
Найпростіший спосіб - це натиснути на цей фільтр і додати тег до цього коміту. Я включив тег "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