Як отримати доступ до повного джерела старої комісії в BitBucket?


226

Я не можу розібратися або знайти документацію щодо доступу до джерела старої комісії у новому форматі Bit Bucket. Це навіть можливо вже?


1
Який новий формат? Ви використовуєте Mercurial або Git? Просто використовуйте клієнти Mercurial або Git для оновлення до старої версії.
Ерно

Відповіді:


369

Я розумію, що ви хочете завантажити старішу версію через веб-інтерфейс 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роботи.


Чи можна використовувати посилання вище в терміналі Android Studio, щоб клонувати комісію? Якщо так, ви могли б надати базовий термінальний код?
tccpg288

1
Я б хотів, щоб вони показали це на своєму веб-сайті, щоб це було очевидно.
котиться

1
Чому це не актуально? Я просто перевірив її ще раз (2018-08-06), і вона все ще працює. Можливо, це проблема з "домашніми" серверами BitBucket? Я перевірив це на сервері bitbucket.org .
Руді Матела

має бути api.bitbucket.orgзараз
Олександр Міллз

1
Можу підтвердити, що вона все ще працює простоbitbucket.org
Велі,

202

Я намагався з'ясувати, чи можна переглядати код попередньої фіксації, як ви можете, на GitHub, і це привело мене сюди. Я використав інформацію, яку я знайшов тут, і, поспілкувавшись із URL-адресами, я фактично знайшов спосіб для перегляду коду старих комітетів.

Під час перегляду коду URL-адреса виглядає так:

https://bitbucket.org/user/repo/src/

і додавши хеш комітів на завершення так:

https://bitbucket.org/user/repo/src/a0328cb

Ви можете переглядати код у точці цього фіксації. Я не розумію, чому немає випадаючого вікна для вибору комісії безпосередньо, функція вже є. Дивно.


2
Це саме те, що мені було потрібно. Пряма посилання з сайту Bitbucket на цю URL-адресу гостро відсутня.
Джонні Ошика

На жаль, це не працює. А точніше працювати, але частково. Наприклад, ви можете переглядати, 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/
Привіт-Ангел

3
Для тих, хто не любить копіювати + вставляти: перейдіть до певного виконання, URL буде чимось на зразок https://bitbucket.org/user/project/commits/0000000000000000000000000000000000000000?at=master. Тепер просто змініть commitsURL-адресу, srcі ви переглядаєте повне джерело на цій комісії!
Пітер

176

Крок 1

Крок 1


Крок 2

Крок 2


Крок 3

Крок 3


Крок 4

Крок 4


Заключний крок

Заключний крок


2
@ManojG Ось від мене. Тож мабуть, існує спосіб дістатись до цілого дерева певним чином, хоч і досить заплутаним чином.
Малькольм

2
ЛЮБИТЬ ЦЕ ВІДПОВІДЬ. Примітка. Ви також можете перейти до файлу та скористатися спадною панеллю. СПАСИБІ!
mattdlockyer

3
Більш дивовижною, ніж ця відповідь, є той факт, що ми не можемо це зробити натисканням кнопки ... деякі речі справді дивовижні ....
Nuno Gonçalves

Цей крок не вирішив для мене, що дало результати: відповідь від @mattdlockyer, виберіть файл, натисніть на спадне меню, виберіть старіший фіксатор, а потім поверніться на базове посилання репо, як на останньому зображенні з публікації oscar
user2582318

1
Все це працює, але при завантаженні його завжди є останньою версією. Я роблю це неправильно чи це саме так?
Джей Мехта

29

На всякий випадок, якщо хтось знаходиться у моєму човні, де жодна з цих відповідей не працювала точно, ось що я зробив.

Можливо, наш домашній сервер 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>

Тепер я можу переглядати всю репо-репо, як це було в той час, коли вчинялися.


6
Ця відповідь є єдиною, яка насправді працює. Більш популярні, здається, посилаються на старіші версії Bitbucket
Klas Mellbourn

9

Чудові відповіді пару років тому. Тепер Bitbucket зробив це легше.

Позначте команду, яку ви хочете завантажити (про що згадував у відповіді Руді Матела).

Потім перейдіть до розділу "Завантаження" та натисніть вкладку "Теги", і ви отримаєте кілька варіантів завантаження.

Завантаження тегів


1
Це був легко найпростіший шлях. Для тих, хто не зміг отримати проблеми з тегами, клацніть на конкретній фіксації, і вгорі праворуч ви побачите джерело перегляду, відділення, фіксацію та теги. Додайте туди свій тег і перейдіть, щоб завантажити його.
PGMacDesign

8

Для запису ви також можете іграти навколо 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 немає нічого, щоб його використовувати.


2
  1. Найпростіший спосіб - це натиснути на цей фільтр і додати тег до цього коміту. Я включив тег "last_commit" до цього коміту

  2. Тоді перейдіть до завантажень у лівому куті бічного нав у бітовому відрі. Натисніть на завантаження в лівій частині

  3. Тепер натисніть на теги на панелі навігації та завантажте поштовий індекс з інтерфейсу користувача. Знайдіть свій тег і завантажте поштовий індекс

1

Ви можете переглянути джерело файлу до певного фіксації, додавши ?until=<sha-of-commit>URL-адресу (після імені файлу).


1

Я знаю, що вже пізно, але з 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

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.