วิธีเข้าถึงการคอมมิชชันเก่าแบบเต็มใน BitBucket


226

ฉันไม่สามารถคิดออกหรือค้นหาเอกสารเกี่ยวกับวิธีการเข้าถึงแหล่งที่มาของการกระทำที่เก่าในรูปแบบ Bit Bucket ใหม่ เป็นไปได้อีกต่อไป?


1
รูปแบบใหม่คืออะไร คุณใช้ Mercurial หรือ Git หรือไม่? เพียงใช้ลูกค้า Mercurial หรือ Git เพื่ออัปเดตเป็นเวอร์ชันเก่า
Erno

คำตอบ:


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

คุณสามารถดาวน์โหลดเวอร์ชันที่ต้องการได้

ดังที่Rakka Rageพูดถึงในความคิดเห็นแทนที่.tar.gzด้วย.zipผลงานด้วย


ฉันสามารถใช้ลิงค์ด้านบนในเทอร์มินัล Android Studio เพื่อโคลนคอมมิทได้หรือไม่? ถ้าเป็นเช่นนั้นคุณสามารถให้รหัสปลายทางพื้นฐานได้หรือไม่?
tccpg288

1
ฉันหวังว่าพวกเขาจะแสดงสิ่งนี้บนเว็บไซต์ของพวกเขาดังนั้นมันจึงชัดเจน
ม้วน

1
ทำไมมันไม่เกี่ยวข้อง? ฉันเพิ่งทดสอบอีกครั้ง (2018-08-06) และยังใช้งานได้ อาจเป็นปัญหากับเซิร์ฟเวอร์ BitBucket ที่ "ใช่หรือไม่" ฉันทดสอบสิ่งนี้บนเซิร์ฟเวอร์bitbucket.org
รูดี้มาเทลา

ควรเป็นapi.bitbucket.orgตอนนี้
Alexander Mills

1
สามารถยืนยันได้ว่ามันยังใช้งานได้เพียงbitbucket.org
Vely

202

ฉันพยายามที่จะคิดออกว่าเป็นไปได้ที่จะเรียกดูรหัสของการกระทำก่อนหน้าเช่นที่คุณสามารถทำได้ใน GitHub และมันทำให้ฉันมาที่นี่ ฉันใช้ข้อมูลที่ฉันพบที่นี่และหลังจากเล่นซอกับ URL ฉันก็พบวิธีการเรียกดูโค้ดเก่า ๆ เช่นกัน

เมื่อคุณเรียกดูรหัสของคุณ URL จะเป็นดังนี้:

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

และโดยการเพิ่มแฮชคอมมิตที่ส่วนท้ายดังนี้:

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

คุณสามารถเรียกดูรหัสที่จุดกระทำ ฉันไม่เข้าใจว่าทำไมไม่มีกล่องดรอปดาวน์สำหรับเลือกการส่งโดยตรงคุณลักษณะนั้นมีอยู่แล้ว แปลก.


2
นี่คือสิ่งที่ฉันต้องการ ลิงค์โดยตรงจากเว็บไซต์ของ Bitbucket ไปยัง URL นี้ขาดหายไปอย่างมาก
Johnny Oshika

อนิจจานี่ใช้งานไม่ได้ หรือค่อนข้างทำงาน แต่บางส่วน เช่นคุณสามารถเรียกดู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 นี่คือส่วนหนึ่งจากฉัน เห็นได้ชัดว่ามีวิธีที่จะได้ต้นไม้ทั้งต้นในการกระทำบางอย่างแม้ว่าในทางที่ค่อนข้างสับสน
Malcolm

2
รักคำตอบนี้ หมายเหตุ: คุณสามารถไปที่ไฟล์และใช้ดรอปดาวน์ได้ ขอบคุณ!
mattdlockyer

3
น่าอัศจรรย์ยิ่งกว่าคำตอบนี้คือความจริงที่ว่าเราไม่สามารถทำได้ด้วยการคลิกเพียงปุ่มเดียว ... บางสิ่งมันช่างน่าทึ่งจริงๆ ....
Nuno Gonçalves

ขั้นตอนนี้ไม่ได้รับการแก้ไขสำหรับฉันสิ่งที่ให้ผลลัพธ์: คำตอบจาก @mattdlockyer เลือกไฟล์คลิกที่เลื่อนลงเลือกการกระทำที่เก่ากว่าแล้วกลับไปที่ลิงก์ฐาน repo เช่นภาพสุดท้ายจากออสการ์โพสต์
user2582318

1
ทั้งหมดนี้ใช้งานได้ แต่เมื่อดาวน์โหลดมันจะเป็นการกระทำล่าสุดเสมอ ฉันทำผิดหรือเป็นอย่างนั้น?
Jay Mehta

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>

ตอนนี้ฉันสามารถดู repo ทั้งหมดเหมือนเดิมในเวลาที่กระทำ


6
คำตอบนี้เป็นคำเดียวที่ใช้งานได้จริง คนที่นิยมมากขึ้นดูเหมือนจะอ้างถึง
Bitbucket

9

คำตอบที่ยอดเยี่ยมจากสองสามปีที่ผ่านมา ตอนนี้ Bitbucket ทำให้มันง่ายขึ้น

แท็ก Commit ที่คุณต้องการดาวน์โหลด (ดังที่ได้กล่าวไว้ในคำตอบโดย Rudy Matela)

จากนั้นตรงไปที่ดาวน์โหลดและคลิกแท็บ "แท็ก" และคุณจะได้รับตัวเลือกมากมายสำหรับการดาวน์โหลด

ดาวน์โหลดแท็ก


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. กว่าไปที่การดาวน์โหลดที่มุมซ้ายของ nav ด้านข้างในที่เก็บข้อมูลบิต คลิกที่ดาวน์โหลดทางด้านซ้าย

  3. ตอนนี้คลิกที่แท็กในแถบนำทางและดาวน์โหลดรหัสไปรษณีย์จาก UI ค้นหาแท็กของคุณและดาวน์โหลดรหัสไปรษณีย์

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%7Dpath%7D

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.