Difference between revisions of "Bitbucket"

From Archiveteam
Jump to navigation Jump to search
(Don't forget the navbox)
(Update and cleanup/slight restructuring, move actual repositories to separate Mercurial page)
Line 4: Line 4:
| logo = bitbucket-atlassian-logo.png
| logo = bitbucket-atlassian-logo.png
| image = bitbucket-screenshot.png
| image = bitbucket-screenshot.png
| project_status = {{specialcase}}
| project_status = {{online}}
| archiving_status = {{inprogress}}
| archiving_status = {{notsavedyet}}
| source = [https://github.com/ArchiveTeam/bitbucket-grab bitbucket-grab]
| tracker = [https://tracker.archiveteam.org/bitbucket/ bitbucket]
| irc = kickthebucket
| irc = kickthebucket
| irc_network = hackint
| irc_network = hackint
Line 15: Line 13:


== Mercurial repositories ==
== Mercurial repositories ==
It announced on 20 August 2019 that it would be ending Mercurial support to focus exclusively on Git.<ref>{{URL|https://bitbucket.org/blog/sunsetting-mercurial-support-in-bitbucket}}</ref> Creating new Mercurial repositories was disabled on 1 February 2020, and all Mercurial repositories and API will be removed on 1 July 2020.<ref>The original sunset date was 1 June, but on 21 April this was pushed back due to [[Coronavirus]].</ref>
It announced on 20 August 2019 that it would be ending Mercurial support to focus exclusively on Git.<ref>{{URL|https://bitbucket.org/blog/sunsetting-mercurial-support-in-bitbucket}}</ref> Creating new Mercurial repositories was disabled on 1 February 2020, and all Mercurial repositories and API were to be removed on 1 July 2020.<ref>The original sunset date was 1 June, but on 21 April this was pushed back due to [[Coronavirus]].</ref> The actual removal happened in mid-August 2020.


== Archival ==
=== Archival ===
{{Infobox project
{{Infobox project
| title = Bitbucket Mercurial web content
| title = Bitbucket Mercurial web content
| project_status = {{closing}}
| project_status = {{offline}}
| archiving_status = {{inprogress}}
| archiving_status = {{saved}}
| source = [https://github.com/ArchiveTeam/bitbucket-grab bitbucket-grab]
| source = [https://github.com/ArchiveTeam/bitbucket-grab bitbucket-grab]
| tracker = [https://tracker.archiveteam.org/bitbucket/ bitbucket]
| tracker = [https://tracker.archiveteam.org/bitbucket/ bitbucket]
| irc = kickthebucket
| irc_network = hackint
}}
{{Infobox project
| title = Bitbucket Mercurial repositories
| project_status = {{closing}}
| archiving_status = {{inprogress}}
| source = [https://github.com/ArchiveTeam/mercurial-grab mercurial-grab]
| tracker = [https://tracker.archiveteam.org/mercurial/ mercurial]
| irc = kickthebucket
| irc = kickthebucket
| irc_network = hackint
| irc_network = hackint
}}
}}


There is Mercurial tooling to deal with the repositories themselves, but these do not include issues, wikis, and other metadata. (What is the status of PRs?) This will have to be separately scraped from Bitbucket's website and/or API.
Our archival was based on an enumeration of Mercurial repositories from Bitbucket's search API after the February lockdown. Repositories were still writable until they were made read-only in early July. Although the API returns an <code>updated-on</code> field, it is not clear whether this is the repository or its metadata.


We have an enumeration of existing Mercurial repositories (scraped from Bitbucket's search API after the February lockdown). These repositories will be writable up to the June deletion. The discovery has an <code>updated-on</code> field, but it's not clear whether this is the repository or its metadata.
The project was split into two parts: the actual hg repositories were retrieved through the [[Mercurial]] project (developed for this but reusable for hg repositories in general), and [https://tracker.archiveteam.org/bitbucket/ bitbucket] covered the web interface (issues, pull requests, wikis, etc.). Apart from around 200 odd repositories, we managed to archive everything successfully.


Our archival is split into two projects: [https://tracker.archiveteam.org/mercurial/ mercurial] retrieves the actual hg repositories, and [https://tracker.archiveteam.org/bitbucket/ bitbucket] covers the web interface (issues, pull requests, wikis, etc.).
=== Statistics ===
 
==== Statistics ====
* Total repos online: 245,068
* Total repos online: 245,068
* Total reported size (fairly accurate): 5.23 TiB (does this include hg compression?)
* Total reported size (fairly accurate): 5.23 TiB (does this include hg compression?)
Line 50: Line 37:
* Maximum reported size: 14.4 GiB
* Maximum reported size: 14.4 GiB


==== Repo cloning ====
=== Existing discussion and tooling ===
From the <code>hg</code> docs:
 
<blockquote>In normal clone mode, the remote normalizes repository data into a common exchange format and the receiving end translates this data into its local storage format. --stream activates a different clone mode that essentially copies repository files from the remote with minimal data processing. This significantly reduces the CPU cost of a clone both remotely and locally. However, it often increases the transferred data size by 30-40%. This can result in substantially faster clones where I/O throughput is plentiful, especially for larger repositories. A side-effect of --stream clones is that storage settings and requirements on the remote are applied locally: a modern client may inherit legacy or inefficient storage used by the remote or a legacy Mercurial client may not be able to clone from a modern Mercurial remote.</blockquote>
 
<code>hg clone</code> produces a directory with a working copy, plus the .hg directory containing version control data. However, this is internally sent as a bundle, which if captured can be unbundled normally.
 
hg network protocols:
* [https://www.mercurial-scm.org/repo/hg-stable/file/tip/mercurial/streamclone.py streamclone.py]
* [https://www.mercurial-scm.org/repo/hg-stable/file/tip/mercurial/statichttprepo.py statichttprepo.py]
* [https://www.mercurial-scm.org/repo/hg-stable/file/tip/mercurial/helptext/internals/wireprotocol.txt wireprotocol.txt]
Requests over HTTP can be WARCed.
 
==== Existing discussion and tooling ====
* [https://community.atlassian.com/t5/Bitbucket-articles/What-to-do-with-your-Mercurial-repos-when-Bitbucket-sunsets/ba-p/1155380 Forum thread]
* [https://community.atlassian.com/t5/Bitbucket-articles/What-to-do-with-your-Mercurial-repos-when-Bitbucket-sunsets/ba-p/1155380 Forum thread]
** [https://community.atlassian.com/t5/Bitbucket-articles/What-to-do-with-your-Mercurial-repos-when-Bitbucket-sunsets/ba-p/1155380/page/7#M321 Some user questions]
** [https://community.atlassian.com/t5/Bitbucket-articles/What-to-do-with-your-Mercurial-repos-when-Bitbucket-sunsets/ba-p/1155380/page/7#M321 Some user questions]

Revision as of 16:23, 3 September 2020

Bitbucket
Bitbucket logo
Bitbucket-screenshot.png
URL https://bitbucket.org/
Status Online!
Archiving status Not saved yet
Archiving type Unknown
IRC channel #kickthebucket (on hackint)

Bitbucket is a version control repository hosting service, marketed mostly towards proprietary and enterprise software but with a substantial FLOSS presence.

Mercurial repositories

It announced on 20 August 2019 that it would be ending Mercurial support to focus exclusively on Git.[1] Creating new Mercurial repositories was disabled on 1 February 2020, and all Mercurial repositories and API were to be removed on 1 July 2020.[2] The actual removal happened in mid-August 2020.

Archival

Bitbucket Mercurial web content
Status Offline
Archiving status Saved!
Archiving type Unknown
Project source bitbucket-grab
Project tracker bitbucket
IRC channel #kickthebucket (on hackint)

Our archival was based on an enumeration of Mercurial repositories from Bitbucket's search API after the February lockdown. Repositories were still writable until they were made read-only in early July. Although the API returns an updated-on field, it is not clear whether this is the repository or its metadata.

The project was split into two parts: the actual hg repositories were retrieved through the Mercurial project (developed for this but reusable for hg repositories in general), and bitbucket covered the web interface (issues, pull requests, wikis, etc.). Apart from around 200 odd repositories, we managed to archive everything successfully.

Statistics

  • Total repos online: 245,068
  • Total reported size (fairly accurate): 5.23 TiB (does this include hg compression?)
  • Mean reported size: 22.4 MiB
  • Median reported size: 205 KiB
  • Maximum reported size: 14.4 GiB

Existing discussion and tooling

Site structure

Some API requires auth, some does not. Rate limits are documented here.

References

  1. https://bitbucket.org/blog/sunsetting-mercurial-support-in-bitbucket[IAWcite.todayMemWeb]
  2. The original sunset date was 1 June, but on 21 April this was pushed back due to Coronavirus.