ฉันไม่สามารถคิดออกหรือค้นหาเอกสารเกี่ยวกับวิธีการเข้าถึงแหล่งที่มาของการกระทำที่เก่าในรูปแบบ 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
คุณสามารถดาวน์โหลดเวอร์ชันที่ต้องการได้
ดังที่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 ในบ้านของเราอาจมีการตั้งค่าแตกต่างกันเล็กน้อย แต่ส่วนใหญ่แล้วนี่คือ 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 ทั้งหมดเหมือนเดิมในเวลาที่กระทำ
คำตอบที่ยอดเยี่ยมจากสองสามปีที่ผ่านมา ตอนนี้ Bitbucket ทำให้มันง่ายขึ้น
แท็ก Commit ที่คุณต้องการดาวน์โหลด (ดังที่ได้กล่าวไว้ในคำตอบโดย Rudy Matela)
จากนั้นตรงไปที่ดาวน์โหลดและคลิกแท็บ "แท็ก" และคุณจะได้รับตัวเลือกมากมายสำหรับการดาวน์โหลด
สำหรับเรกคอร์ดคุณยังสามารถเล่นกับ 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' กับการกระทำนี้
กว่าไปที่การดาวน์โหลดที่มุมซ้ายของ nav ด้านข้างในที่เก็บข้อมูลบิต คลิกที่ดาวน์โหลดทางด้านซ้าย
คุณสามารถดูแหล่งที่มาของไฟล์สูงสุดถึงการกระทำที่เฉพาะเจาะจงโดยผนวก
?until=<sha-of-commit>
ใน URL (หลังชื่อไฟล์)
ฉันรู้ว่ามันสายเกินไป แต่ด้วย 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