BETA

v2.7.4からv2.8.0にアップデートするのが難しいのはなぜか?

投稿日:2019-04-11
最終更新:2019-04-14

Mastodon v2.8.0 がリリースされましたが、v2.7.4にgit merge v2.8.0するのはちょっとまってください。自動でマージすることができず、コンフリクトします。
https://dtp-mstdn.jp/@noellabo/101904394306319396

更新の方法・注意点は、毎回リリースページに記載があります。こちらをよく読んで、更新を適用してください。
rubyのバージョンも上げる必要があるし、pullとかfetch&mergeするとハマるし、環境やデータベース壊したら元も子もないので、ちゃんと説明読んで作業を進めて下さいね。
https://github.com/tootsuite/mastodon/releases/tag/v2.8.0

ここでは、なぜマージできないのかもうちょっと知りたい人のために、その理由をざっくり説明します。

v2.7.4の更新内容のリスト

Mastodon v2.7.4 の環境で、どんな更新(commit)が行われてきたか、どの更新にタグ(v2.7.4など)がつけられているか、確認してみます。git log --onelineというコマンドを使います。

a91349d45 (HEAD, tag: v2.7.4, upstream/stable-2.7, uptest) Bump version to 2.7.4  
ae9e5ac6c Fix suspended account's fields being set as empty dict instead of list (#10178)  
7034bb65d Fix lists export (#10136)  
a4bc5c375 Fix home timeline perpetually reloading when empty (#10130)  
2d9138082 Fix serialization of boosts (#10129)  
3a3cdc972 Fix direct timeline pagination in the WebUI (#10126)  
7a5095a53 Allow getting-started to scroll on short screens (#10075)  
7f5b57068 Fix mention processing for unknwon accounts on incoming ActivityPub Notes (#10125)  
aa63c3e22 Improve account media query (#10121)  
04197a274 Avoid redundant HTTP request on some error cases (#10115)  
1219e463f Fix web UI not removing notifications after block (#10108)  
035934514 (tag: v2.7.3) Bump version to 2.7.3  
6df61bf9d Fix “reset” button of instance filter switching to custom emoji admin panel (#10076)  
80db9a74e Add quick link from admin account view to block/unblock instance (#10073)  
3dd663c45 Add domain search/filter to the "Federation" (/admin/instances) page (#10071)  
07fffd226 Randomize emoji filename (#10090)  
890a60643 Do not error out when performing admin actions on no statuses (#10094)  
a750d1aa3 Fix crash when conversations have no valid participants (#10078)  
d23a7f972 Hide domain filter in admin page when “local” filter is active (#10074)  
3e59a0e83 Fix video player width not being updated to fit container width (#10069)  
f3eb99aec (tag: v2.7.2) Bump version to 2.7.2  
e5f4af23e Fix crash on public hashtag pages when streaming fails (#10061)  
33e8fa0d7 Fix mutes, blocks, domain blocks and follow requests not paginating (#10057)  
98e38200a Add vapid_key to the application entity in the REST API (#10058)  
b6a5268e1 Add registrations attribute to instance entity in REST API (#10060)  
caf145029 Change error graphic to hover-to-play (#10055)  
584f29e62 Change buttons on timeline preview to open the interaction dialog (#10054)  
7b59de4f5 Change conversations to always show names of other participants (#10047)  
5aa147b67 Fix breaks when opening a reply tree in WebUI (#10046)  
77a71236a perf: run node directly when streaming (#10032)  
1ad0d232b Improve image description user experience (#10036)  
45b2bb464 Change robots.txt to exclude only media proxy URLs (#10038)  
637f0007b Change robots.txt to exclude some URLs (#10037)  
8ad75eea6 Fix relay enabling/disabling not resetting inbox availability status (#10048)  
b163368c3 Fix Announce activities of unknown statuses not fetching those statuses (#10065)  
71b831601 Add logging for rejected ActivityPub payloads and add tests (#10062)  
e84c76181 Filter incoming Announce activities by relation to local activity (#10041)  
ef45411c5 Filter incoming Create activities by relation to local activity (#10005)  
6c11f0f8c Alternative handling of private self-boosts (#9998)  
737ac4b59 Create Redisable#redis (#9633)  
17a41e1f7 Fix hashtag column not subscribing to stream on mount (#10040)  
5a04861c7 Add tight rate-limit for API deletions (#10042)  
2a1adab7d Fix style regressions on landing page (#10030)  
a46487e89 Fix hashtags select styling in default and high contrast themes (#10029)  
f0f657e77 Fix color of static page links in high contrast theme (#10028)  
1186b9abe Save IP address used for sign-up, not only sign-in (#10026)  
27310a84a Add support for IPv6 only MXes in Email validation (#10009)  
d66267508 Move sending account Delete to anyone but the account's followers to the pull̀ queue (#10016)  
41ecf8064 Don't focus spiler input when disabled spoiler (#10017)  
e1dbdf737 Fix timeline jumps (#10001)  
d9f0c7fb8 Fix IntersectionObserverArticle not hiding some out-of-view items (#9982)  
6ea4cd5b8 Fix URL linkifier grabbing full-width spaces and quotations (#9997)  
2a7c091ea  Only URLs extract with pre-escaped text (#9991)  
e2afe5fdf Fix Tombstone.delete_all ArgumentError (#9978)  
edde07f5a Hide misleading “You will be sent a confirmation e-mail” hint from admin view (#9973)  
cd36ff43f [UI] Fix whitespace being applied to div instead of p (#9968)  
5e7c75cfd Fix not showing custom emojis in share page emoji picker (#9970)  
a742a0953 Fix authorized applications list page design (#9969)  
fdf819b83 Allow most kinds of characters in URL query (fixes #8408) (#8447)  
687a0cbcb Replace unlock-alt icon with unlock (#9952)  
e31970b92 Fix link color in high-contrast theme, add underlines (#9949)  
88a1d0cdb Bumps copyright year in README.md to 2019 (#9939)  
28866d329 (tag: v2.7.1) Bump version to 2.7.1 (#9932)  

表示はずっと続きますが、tag: v2.7.1 のあたりでストップしておきます。

  • 各行が、一つの更新に対応しています
  • 更新の一つ一つは、「バージョン番号を2.7.1にする」とか「README.mdのコピーライト表記の年を2019にする」などのように、一つ一つの内容が明快になるような単位に分割されています
  • ところどころ、(tag: v2.7.1)などのような表記が挟まっています。これは、この更新の時点にv2.7.1という印(タグ)をつけたよ、ということです
  • (HEAD)となっているものが、現在の位置です
  • 先頭の数字と英字の混じったもの28866d329は更新を識別するIDです(コミットハッシュ)

ということで、v2.7.1から41個ほど更新して、そこにv2.7.2というタグがつけられています。そのあと9個の更新があってv2.7.3というタグが、11個の更新があってv2.7.4というタグがつけられていることがわかります。

v2.8.0の更新内容のリスト

さて、ではv2.8.0はどうかというと、

6afab2587 (HEAD, tag: v2.8.0, upstream/master) Bump version to 2.8.0 (#10550)  
21193b0a1 [i18n] Update for Occitan language (#10548)  
5dd14dfde i18n: Russian localization update (#10515)  
a9f130b8d Fix Keybase verification using wrong domain for remote accounts (#10547)  
793b0513e Weblate translations (2019-04-10) (#10545)  
d431c810d increase allowable length of remote proof username (#10546)  
154106c0c compare usernames case-insensitively on new proof creation flow (#10544)  
9e2a1f183 i18n: Update Japanese translations (#10536)  
2e01a9b20 I18n: Add one more string (#10543)  
4e59f709a I18n: Final Czech translation  (#10542)  
3dea62bfa Updates the grammar of the SK translation (#10541)  
640270196 Updated German translation (#10539)  
459516886 Translation - Korean (#10540)  
a5c60f87b i18n: Update Corsican translations (#10538)  
830c2a9cc (tag: v2.8.0rc3) Bump version to 2.8.0rc3 (#10535)  
9b0d8f74c Change the groupings of menu items in settings navigation (#10533)  
400397c0c Change HTML validator to ignore all errors except unmatched tags (#10534)  
46cb36fd2 Add invite request to pending account notification e-mail (#10528)  
36b39fbac Add preference to disable e-mails about new pending accounts (#10529)  
2cb16c20a Fixed terrible grammar and translated the most (#10527)  
48f466daf Allow set the voting period to just 5 minutes (#10525)  
8b69a6638 Add "why do you want to join" field to invite requests (#10524)  
0f3719f16 Bump hamlit-rails from 0.2.2 to 0.2.3 (#10522)  
819d053be Bump bootsnap from 1.4.2 to 1.4.3 (#10523)  
654f79d2b Fix permission denied bug on approve all/reject all pending accounts (#10519)  
c03f926cf (tag: v2.8.0rc2) Bump version to 2.8.0rc2 (#10501)  
56f29c38b Fix glitched out "not found" message for non-existing profiles in web UI (#10517)  
ba1a78d16 [i18n] Update and correction (#10511)  
2a168a002 i18n: Update Corsican translations (#10510)  
5247ea4ef Fix batch actions not working on pending accounts (#10508)  
3f036ac6b Updated German locales (#10505)  
6e111152e i18n: Update Corsican translations (#10504)  
ae58bbd70 i18n: Update Czech translation (#10506)  
a4d5e1532 Fix config serializer regex (#10487)  
08ba69b53 Add `tootctl accounts reset-relationships` (#10483)  
cb71c95e2 Export and import show_reblogs together with following list (#10495)  
619bbc23e Translate Korean (#10499)  
38b8a5c5b Updated french translations (#10498)  
a26569699 i18n: Update Japanese translations (#10494)  
3563ce34e i18n: Update Corsican translations (#10496)  
67b3b62b9 Improve blocked view of profiles (#10491)  
0e8819f0e Add rate limit for media proxy requests (#10490)  
6a0cd366e I18n: Update Czech translation (#10489)  
b70389977 Updated German locales (#10488)  
e1d0390e2 Add batch actions for approving and rejecting pending accounts (#10469)  
2c63e0292 Fix admin validation being too strict about usernames (#10449)  
78a8a99b0 Improve sk translation further (#10484)  
2b68fe544 tinyfix 2: unrequired arguments (#10471)  
20d301c38 Fix missing long description on `tootctl statuses remove` (#10482)  
6689e572f Add `tootctl emoji purge` (#10481)  
e007c7a99 Add `tootctl accounts approve` (#10480)  
fb8557e65 Bump rubocop from 0.66.0 to 0.67.1 (#10475)  
4be795289 i18n: Update Polish translation (#10479)  
e0137c588 Updates the Slovak translation (#10477)  
48a52c937 Dutch (nl) translation (#10474)  
e6814a332 Fix `tootctl accounts cull` (#10460)  
bd365cc38 Duplicate values (#10470)  
26bd9fa50 i18n: update Catalan translation (#10458)  
caa2814d4 Translate Korean (devise) (#10464)  
cc6e3c390 Cache featured collections, as well as outbox, followers and following (#10467)  
d4882aa64 Export and import `hide_notifications` alongside user mutes (#10335)  
daab45d4a Update poll remaining time just like with status timestamps (#10466)  
d07b0c038 Hopefully fix input text selection quirks on iOS (#10463)  
f984f2ea4 Esperanto translations (#10461)  
83190fffc Re-dd PT-br translations (#10459)  
3f75b0929 i18n: update catalan translations (#10455)  
0705e4b17 I18n: Improve Czech translation (#10454)  
f86b2d8ed Bump i18n-tasks from 0.9.28 to 0.9.29 (#10451)  
6024964b1 Bump capybara from 3.16.0 to 3.16.1 (#10450)  
120544067 Fix filtering of favourited_by, reblogged_by, followers and following (#10447)  
62bafa20a Hide blocking accounts from blocked users (#10442)  
67eb47e25 Simplify culling and fix race condition (#10440)  
2acd8940d Fix more keybase-related test failures (#10443)  
85973f4f3 Improvements to image upload validation and creation (#10431)  
abdf22535 i18n: Update Japanese translations (#10427)  
68c797bec Ensure request.body isn't emptied out before signature verification (#10432)  
59cce0760 Add thumbnail, hero, and mascot back to Form::AdminSettings::KEYS (#10430)  
abecaba31 Fix failing keybase-related test (#10428)  
51625d342 Remove unused code (#10426)  
b7379da6c Cache error 410 responses in recommended nginx configuration (#10425)  
ac650d7a1 (tag: v2.8.0rc1) Bump version to 2.8.0rc1 (#10340)  
1714ea597 Add ActivityPub representation for identity proofs (#10414)  
8fb69f136 Fix emoji-mart crashing web UI on search by reverting the upgrade to 2.10.0 (#10413)  
79227d153 Fix transparent avatars showing underlying elements in avatar stack and profile (#10422)  
379c3e237 Fix search in web UI not setting a limit, restore limit of 5 (#10421)  
bd02ec6da Add indication that you have been blocked in web UI (#10420)  
1d62b88f8 I18n: Update Czech translation (#10419)  
e5d79d163 Add missing Korean translations (#10416)  
3b1c64cad Bump capybara from 3.15.0 to 3.16.0 (#10415)  
34090a85e Update Corsican translations (#10418)  
2a326940e l10n update: fa (#10417)  
58667072d Fix opacity of relationship tags (#10411)  
1a7d1f4a4 I18n: Update Czech translation (#10410)  
69141dca2 squashed identity proof updates (#10375)  
026dd7520 Add `tootctl self-destruct` (#10367)  
24d5b6f9e Bump aws-sdk-s3 from 1.35.0 to 1.36.0 (#10406)  
85629bf3d Bump rails from 5.2.2.1 to 5.2.3 (#10407)  
f1bc90ab5 Rename :poll to :preloadable_poll and :owned_poll to :poll on Status (#10401)  
f46f67d98 [Security] Bump devise from 4.5.0 to 4.6.2 (#10394)  
5d41532d9 Add `tootctl search deploy` to avoid ugly rake task syntax (#10403)  
08ec7435c Add order options to relationship manager UI (#10404)  
683013756 Revert locales touched by automated translations (#10399)  
e86663b1d Fix alternative relay support regression (#10398)  
319bce3d9 Bump tzinfo-data from 1.2018.9 to 1.2019.1 (#10396)  
852ca1275 Bump bootsnap from 1.4.1 to 1.4.2 (#10395)  
73f5711fb Add rel='noopener' to redesigned profile column header avatar link (#10393)  
869e58e7e Fix interpolations in some localizations (#10397)  
11fe293e1 Remove unused ActivityPub `@context` values depending on response (#10378)  
a91acf79b Move the account dropdown menubar to the right, make sure it doesn't move (#10390)  
6df4a8296 Add a “Block & Report” button to the block confirmation dialog (#10360)  
0c46bd11a Fix HTML validation (#10354)  
6f6abc369 Make clicking on avatar open public profile in new tab (#10387)  
0c1a05b28 Bump makara from 0.4.0 to 0.4.1 (#10382)  
68f2211f0 Do not set CSRF Token when no csrf header (#10383)  
792a0f106 Bump dotenv-rails from 2.7.1 to 2.7.2 (#10381)  
6968ae79a Bump nokogiri from 1.10.1 to 1.10.2 (#10380)  
186f7bcbb Fix menu items that don't action (#10379)  
e11796432 Change icons of features on admin dashboard to remove bias (#10366)  
9745de883 Add `blocked_by` relationship to the REST API (#10373)  
e6cfa7ab8 Change language detector threshold from 140 characters to 4 words (#10376)  
94e5e834f Improve performance of list of blocked domains by caching counts (#10374)  
a96181f16 Redesign profile column in web UI to match design on public pages (#10337)  
ac0cc692f Bump aws-sdk-s3 from 1.34.0 to 1.35.0 (#10369)  
035828f8c Bump rack-cors from 1.0.2 to 1.0.3 (#10368)  
d8b6431aa Add allowfullscreen attribute to oembed iframe (#10370)  
94aceb85a Do not empty timeline of blocked users on block (#10359)  
ef8b9afd1 Weblate translations (2019-03-24) (#10362)  
45b849bad Fix MergeWorker being queued for remote users (#10355)  
0f9278c3d Don't autofocus registration form (#10356)  
9ec98893f Change settings description (#10312)  
08c3ce51a Do not show identity proofs menu item unless there are identity proofs (#10350)  
9d0573f57 Fix vote-after-expiration not showing error, count vote as interaction (#10352)  
555c4e11b Add validations to admin settings (#10348)  
55a9658ad Add custom closed registrations message to landing page when set (#10347)  
00d988955 If registrations have been re-opened when user confirms account, approve (#10349)  
013a9e0be Bump memory_profiler from 0.9.12 to 0.9.13 (#10341)  
d23ff0c5c Bump aws-sdk-s3 from 1.33.0 to 1.34.0 (#10342)  
3411fbef1 Improve config serializer for Keybase (#10338)  
236191794 Mark the 410 gone response for suspended accounts as cachable (#10339)  
62dd0b7f9 Fix processing poll Updates (#10333)  
d66bbdd35 Bump puma from 3.12.0 to 3.12.1 (#10331)  
4f91c8510 Bump oj from 3.7.10 to 3.7.11 (#10332)  
88be18125 Bump capybara from 3.14.0 to 3.15.0 (#10330)  
7169928f9 cas_options :validate_url should be :service_validate_url (#10328)  
80f0910e2 Add support for custom emojis in poll options (#10322)  
66d945209 Do not try fetching keys of unknown accounts on a Delete from them (#10326)  
158c31b9d Reduce padding around logo on landing page (#10291)  
941b0adca Bump aws-sdk-s3 from 1.32.0 to 1.33.0 (#10319)  
c95e3a2e3 Bump rubocop from 0.65.0 to 0.66.0 (#10318)  
1217185cf Do not distribute Delete when rejecting unapproved accounts (#10321)  
d041b7a1e Do not show timeline preview or directory widgets if they are disabled (#10284)  
9d9b6e354 Add missing locales (bn, ga, hi) (#10295)  
9c4cbdbaf Add Keybase integration (#10297)  
42c581c45 Disable real-time updates on public pages to improve readability (#10260)  
f85b66eb8 Bump brakeman from 4.4.0 to 4.5.0 (#10309)  
2bdb6dac2 Bump httplog from 1.2.1 to 1.2.2 (#10311)  
14c6cbbf6 Bump pkg-config from 1.3.6 to 1.3.7 (#10310)  
b8e4c85e6 Add dormant filter to relationship manager, rename other filters (#10308)  
7130d6e51 Fix relationship manager on narrow screens (#10293)  
c3d159457 Reduce server load caused by anonymous viewing. (#9059)  
a20354a20 Set and store report URIs (#10303)  
5e38ef87a Fix reblogs privacy (#10302)  
c92a1cf5c I18n: Fix Czech pluralization (#10301)  
7477db726 Save quick filter settings when selecting a different filter (#10296)  
97e5f739f Fix returned translations. (#10298)  
735b8be20 Weblate translations (2019-03-16) (#10294)  
6b0eda14a Avoid race condition when streaming deleted statuses (#10280)  
db06b2537 fix: update to emoji-mart 2.10.0 (#10281)  
6a3f08661 Fix scrollbar styles on compose textarea, small bugs (#10292)  
1a0d3c9c6 Do not use @babel/preset-env to compile node_modules (#10289)  
d5c79975e perf: remove stats.json generation in webpack (#10290)  
1c113fd72 Add relationship manager UI (#10268)  
8da5b8e66 perf: remove zopfli to speed up webpack (#10288)  
782b622f5 Add specs for action log helper (#9605)  
8347479f5 Bump webpacker from 3.5.5 to 4.0.2 (#10277)  
5a9978f02 Bump aws-sdk-s3 from 1.31.0 to 1.32.0 (#10279)  
2e7b2b4da Bump oj from 3.7.9 to 3.7.10 (#10278)  
3ad3223b4 Fix detailed poll validation errors not being returned in the API (#10261)  
c20d096e6 Show disappointed elephant if web UI crashes (#10275)  
ff565524a Fix maxed-out invites not showing up as expired in UI (#10274)  
1b167707c Fix language detection of non-latin alphabets even at few characters (#10276)  
ba84b6d4d Add `visibility` param to reblog REST API (#9851)  
317c43b75 Upgrade yargs to v12.0 (#9862)  
d94e21f93 Add a preferences API so apps can share basic behaviours (#10109)  
85c3bbb23 I18n: Update Czech translation (#10272)  
9915777a1 Migrate existing `open_registrations` setting to the new `registrations_mode` (#10269)  
874bd3ac0 Fix error in AdminMailer#new_pending_account (#10264)  
6841d8fc7 Fix wrong method used in PollExpirationNotifyWorker (#10265)  
51e154f5e Admission-based registrations mode (#10250)  
6e3936aa6 Improve invites list with click-to-copy inputs (#10259)  
9e3317460 Refactor User model, extract PamAuthenticable, LdapAuthenticable (#10217)  
dfb9efae8 [Security] Bump rails from 5.2.2 to 5.2.2.1 (#10257)  
65d9004ac Add UI for enabling/disabling poll notifications (#10255)  
c6f018091 i18n: Add Japanese translations for new landing page (#10254)  
06663fcf8 Fix `tagged` param not being normalized before querying tags (#10249)  
d4ef90eae Fix to limit to discoverable accounts. (#10253)  
0a6840564 Bump active_record_query_trace from 1.6.1 to 1.6.2 (#10252)  
9f5b55ad4 Fix poll update handler calling method was that was not available (#10246)  
a41afef80 Optimize RemoveStatusService by removing n+1 query and using shared inboxes (#10247)  
5b50c2cba Add muted style for polls in web UI (#10248)  
da45b8b4c Fix public timeline page not paginating correctly (#10245)  
65fffeac3 Redesign landing page (#10232)  
6a8dc59eb Bump concurrent-ruby from 1.1.4 to 1.1.5 (#10242)  
85537b006 Squish username before validation (#10239)  
f5eeac010 Fix remote interaction dialogs being indexed by search engines (#10240)  
c8122e84c Bump aws-sdk-s3 from 1.30.1 to 1.31.0 (#10236)  
67665023c Add `tootctl statuses remove` to sweep unreferenced statuses (#10063)  
a558ef45d Bump pkg-config from 1.3.5 to 1.3.6 (#10235)  
0a2e5abec Bump active_record_query_trace from 1.6 to 1.6.1 (#10237)  
79b00d294 Increase DNS timeouts (#10238)  
13a7f0503 Fix streaming API always attempting to use SSL with Postgres (#10231)  
5506b9406 Avoid race conditions when creating backups (#10234)  
3a92885a8 Support pushing and receiving updates to poll tallies (#10209)  
c11dff504 Reject existing Follows when suspending a remote account (#10230)  
dbeab5a03 Fix SSL configuration regression in streaming API (#10225)  
b6bc98c48 Add clearer error when/if gpg fails to install (#10228)  
6c0a96912 Change joinmastodon.org to joinmastodon.org/#getting-started for sign up on another server (#10224)  
3f4a6d44f Fix setting up fields of a previously suspended account (#10222)  
d36fcb54c Re-organize Dockerfile to improve incremental builds. (#10212)  
42e733681 config: add DB_SSLMODE for managed/remote PG (#10210)  
9e33a71ef Bump pkg-config from 1.3.4 to 1.3.5 (#10218)  
3aaac4f13 Do not allow adding votes to expired polls (#10214)  
054bbb3da Immediately display poll results to poll author (#10187)  
75cb93676 Fix NaN in Poll component (#10213)  
be1c634b2 Fix public timelines being broken by new toots when they are not mounted (#10131)  
09c042aa1 Handle StaleObjectError when retrieving polls (#10208)  
637c952cc Bump webpush from 0.3.6 to 0.3.7 (#10205)  
44475bbc9 i18n: (#10199)  
34f261e6a Avoid unnecessarily fetching the replies collection when it is empty (#10201)  
dfb45374d Fix AddLockVersionToPolls migration (#10200)  
f44091d65 Fix #10202 (#10203)  
96f905f40 Add optimistic lock to avoid race conditions when handling votes (#10196)  
b3668a79e Disable the underlying button element when an ItemButton is disabled (#10194)  
cb217444b Disable file upload when there is a poll (#10195)  
ad6f7ea25 Bump active_record_query_trace from 1.5.4 to 1.6 (#10192)  
fd128b9c7 Fix poll options not rendering text after vote/refresh (#10189)  
57643557b Avoid line breaks in poll options (#10188)  
5996be994 Fix poll validation issues (#10186)  
d97cbb0da Add UI for creating polls (#10184)  
4407f0701 Render unicode emoji in polls using emoji pack (#10185)  
efd0fb808 Fix newlines in OStatus and RSS serializations (#10183)  
b5f119cfa Minor update for Slovak tr (#10181)  
7be1d7041 I18n: Update Czech pluralization (#10182)  
d604489b5 Weblate translations (2019-03-05) (#10180)  
636db1f54 When serializing polls over OStatus, serialize poll options to text (#10160)  
7d5e2dda7 Bump version to 2.7.4 (#10179)  
0c43c320d Fix status creation API silently discarding invalid poll (#10171)  
df5924a1d Do not error out on unsalvageable errors in FetchRepliesService (#10175)  
d785497ba Fix suspended account's fields being set as empty dict instead of list (#10178)  
ac99b3465 Fix NoMethodError in ActivityPub::NoteSerializer (#10172)  
4037b5eb1 Fix last_fetched_at not being set on polls (#10170)  
a198add83 Fix various issues in polls (#10165)  
0a39c81dd Add test ensuring that unknown object types are rejected (#10166)  
5d3e7cee9 Fix featured tag form not failing on failed tag validations (#10167)  
05dfd632c Fix poll options not being stripped of surrounding whitespace on save (#10168)  
cda6ece76 Display closed polls as such (#10156)  
833ffce2d Store remote votes URI (#10158)  
7a25bb858 Ensure only people allowed to see the poll can actually vote (#10161)  
f2a1b8b96 Widen allowed time windows for polls (#10162)  
3de71887d Add non-JS fallback for polls on public pages (#10155)  
4ced60949 Fixes to the polls UI (#10150)  
1a7de769a Fix ActivityPub votes having nil IDs (#10151)  
0e6998da3 Add tests for ActivityPub poll processing (#10143)  
3cf98aac6 Fix missing in_reply_to in ActivityPub::VoteSerializer (#10148)  
e6900b167 Fix another typo in ActivityPub::FetchRemotePollService (#10146)  
878a75ba2 Fix typo in ActivityPub::FetchRemotePollService (#10145)  
ae1b9cf70 Fix remote poll expiration time (#10144)  
f821eca3b Correctly make polls and media mutually exclusive (#10141)  
e13d3792f Make sure the poll is created before storing its id (#10142)  
5dfa43369 Fix web UI crash on page load when detailed status has a poll (#10139)  
26c56d0c1 Insert polls in redux stores before statuses so it avoids crashes (#10140)  
8fe93b070 Fix vote validation for polls with multiple choices (#10138)  
230a012f0 Add polls (#10111)  
99dc212ae Fix lists export (#10136)  
3e0ed36e8 Fix home timeline perpetually reloading when empty (#10130)  
5ecbf4d4c Bump sidekiq-unique-jobs from 6.0.11 to 6.0.12 (#10132)  
ee7d79c0c Fix serialization of boosts (#10129)  
d8498b398 Give the `replies` collection an identifier and enable pagination (#10128)  
9d3c6f184 Improved remote thread fetching (#10106)  
6e8743d17 Fix direct timeline pagination in the WebUI (#10126)  
df0120670 Allow getting-started to scroll on short screens (#10075)  
34315fcda Bump capybara from 3.13.2 to 3.14.0 (#10119)  
74258ef77 Bump hamlit-rails from 0.2.1 to 0.2.2 (#10124)  
9edab4636 Fix mention processing for unknwon accounts on incoming ActivityPub Notes (#10125)  
a5e7ada62 Improve account media query (#10121)  
e7f20cc43 Add type, limit, offset, min_id, max_id, account_id to search API (#10091)  
ea58e3182 Bump hamlit-rails from 0.2.0 to 0.2.1 (#10120)  
6e9481ad7 Bump bootsnap from 1.4.0 to 1.4.1 (#10118)  
775e835ed Bump rubocop from 0.64.0 to 0.65.0 (#10112)  
c07e59031 Bump dotenv-rails from 2.6.0 to 2.7.1 (#10114)  
66adca611 Bump sidekiq-unique-jobs from 6.0.9 to 6.0.11 (#10113)  
9dd54ffb1 Avoid redundant HTTP request on some error cases (#10115)  
16fb39cff Fix fail health check due to missing wget (#10110)  
3a44827d3 Fix web UI not removing notifications after block (#10108)  
1dbf993bc Switch to Ubuntu for docker (#10100)  
e05095879 Skip some methods in BatchedRemoveStatusService when account is nil (#10095)  
57483f2ff I18n: Add language options for Kazakh and Lithuanian (#10104)  
96db7191d Bump version to 2.7.3 (#10102)  
3c86a7856 Weblate translations (2019-02-23) (#10103)  
d7ad42a88 Randomize emoji filename (#10090)  
453283349 Bump pry-byebug from 3.6.0 to 3.7.0 (#10098)  
738c03421 Do not error out when performing admin actions on no statuses (#10094)  
4340d338f correct opt-out showing application (#10086)  
aa6a4b7b8 Upgrade Ruby to 2.6.1 (#9956)  
addc8393e Bump pkg-config from 1.3.3 to 1.3.4 (#10081)  
b8acdfedf Bump oj from 3.7.8 to 3.7.9 (#10082)  
8e7fc7ec7 Fix crash when conversations have no valid participants (#10078)  
359d26a05 Fix “reset” button of instance filter switching to custom emoji admin panel (#10076)  
3a8cb6c73 Add quick link from admin account view to block/unblock instance (#10073)  
6840a7771 Add domain search/filter to the "Federation" (/admin/instances) page (#10071)  
2f7f6af26 Hide domain filter in admin page when “local” filter is active (#10074)  
d1d7d14f7 Fix video player width not being updated to fit container width (#10069)  
7853be1f0 Bump version to 2.7.2 (#10067)  
1a1b8170b Fix Announce activities of unknown statuses not fetching those statuses (#10065)  
147b4c2c3 Add logging for rejected ActivityPub payloads and add tests (#10062)  
041ff5fa9 Fix crash on public hashtag pages when streaming fails (#10061)  
ea7ad59af Fix mutes, blocks, domain blocks and follow requests not paginating (#10057)  
cc84a407f Add vapid_key to the application entity in the REST API (#10058)  
a006d4afb Add registrations attribute to instance entity in REST API (#10060)  
80388a3ff Change error graphic to hover-to-play (#10055)  
71e28ba39 Change buttons on timeline preview to open the interaction dialog (#10054)  
c417e8c19 Filter incoming Announce activities by relation to local activity (#10041)  
8ef50706a Fix relay enabling/disabling not resetting inbox availability status (#10048)  
b01f26ffb Change conversations to always show names of other participants (#10047)  
57c2fc845 Bump better_errors from 2.5.0 to 2.5.1 (#10050)  
f9a338b47 Fix breaks when opening a reply tree in WebUI (#10046)  
aa8321987 Fix hashtag column not subscribing to stream on mount (#10040)  
99fa1ce93 Add tight rate-limit for API deletions (#10042)  
a5992e588 Change robots.txt to exclude only media proxy URLs (#10038)  
309043b15 Improve image description user experience (#10036)  
80161f435 Change robots.txt to exclude some URLs (#10037)  
775041659 I18n: Update Czech pluralization and fix some language names (#10015)  
658b4621a perf: run node directly when streaming (#10032)  
188f1c7c8 Add list title editing (#9748)  
dad339da6 Filter incoming Create activities by relation to local activity (#10005)  
011b476d3 Bump faker from 1.9.2 to 1.9.3 (#10031)  
114cdc36a Fix style regressions on landing page (#10030)  
6a5307a57 Alternative handling of private self-boosts (#9998)  
169b9d442 Fix hashtags select styling in default and high contrast themes (#10029)  
98d1a1f11 Disable box shadows for featured hashtags in light theme (#10034)  
c6e7b97ba Fix color of static page links in high contrast theme (#10028)  
3d374ed18 Bump bootsnap from 1.3.2 to 1.4.0 (#10022)  
5977e6af3 Bump faker from 1.9.1 to 1.9.2 (#10020)  
3a2e44b62 Bump pkg-config from 1.3.2 to 1.3.3 (#10023)  
fbe527ccf Bump sidekiq-unique-jobs from 6.0.8 to 6.0.9 (#10019)  
67215692f Save IP address used for sign-up, not only sign-in (#10026)  
2f80a348c Bump active_model_serializers from 0.10.8 to 0.10.9 (#10018)  
4f0322dca Add support for IPv6 only MXes in Email validation (#10009)  
241661e00 Bump rubocop from 0.63.1 to 0.64.0 (#10006)  
99c4b5b75 Move sending account Delete to anyone but the account's followers to the pull̀ queue (#10016)  
0e513ff86 Don't focus spiler input when disabled spoiler (#10017)  
aee93bfc9 Fix timeline jumps (#10001)  
c0a564fea Add available locales for lv, ms, sq (#10008)  
a3e10f44c Weblate translations (2019-02-11) (#10007)  
3cfadd875 Add "copy link" item to status action bars (#9983)  
3031b8a8f Bump parallel_tests from 2.27.1 to 2.28.0 (#9985)  
fb90ec894 i18n: add Japanese translations (#10000)  
016ad37bc Fix URL linkifier grabbing full-width spaces and quotations (#9997)  
a666d1e7e Enable "displaying application used to post" setting by default (#9994)  
157d3af46  Only URLs extract with pre-escaped text (#9991)  
d09ce6d81 Fix IntersectionObserverArticle not hiding some out-of-view items (#9982)  
e28fe2ef2 Bump microformats from 4.0.7 to 4.1.0 (#9980)  
e186bd2fb Fix Tombstone.delete_all ArgumentError (#9978)  
46e806cd2 Rename from instance to server. (#9938)  
3eb17a3be i18n: Update Polish translation  (#9974)  
26c1aba65 Do not use apk cache and upgrade (#9966)  
11d150285 Replace LibreSSL by OpenSSL (#9975)  
1ac9a3f4b Hide misleading “You will be sent a confirmation e-mail” hint from admin view (#9973)  
5bffb53a7 Fix it as tagged_request of accounts_controller is not addressable_uri (#9976)  
5c873a4ed Update Dockerfile (#9965)  
76d41475a [UI] Fix whitespace being applied to div instead of p (#9968)  
2557cb2f9 Fix pinned statuses being shown in a featured hashtag (#9971)  
e02a13f64 Fix not showing custom emojis in share page emoji picker (#9970)  
88f35f339 Fix authorized applications list page design (#9969)  
c78d64d9c Use video filesize limit with gifv (#9924)  
f86413fce change "finish tutorial" text to "finish toot-orial" (#9905)  
364f2ff9a Add featured hashtags to profiles (#9755)  
d14c276e5 Add option to overwrite imported data (#9962)  
c5071f2d7 Bump capybara from 3.12.0 to 3.13.2 (#9935)  
7e33d6d19 Bump httplog from 1.2.0 to 1.2.1 (#9942)  
750c67660 Allow multiple files upload through web UI, including drag & drop (#9856)  
582f86ab3 Re-enable ignored translations that is needed (#7842)  
ed3011061 Make displaying application used to toot opt-in (#9897)  
bcfff6519 Create Redisable#redis (#9633)  
6a5e3da6b Allow most kinds of characters in URL query (fixes #8408) (#8447)  
5bffb53a7 Fix it as tagged_request of accounts_controller is not addressable_uri (#9976)  
5c873a4ed Update Dockerfile (#9965)  
76d41475a [UI] Fix whitespace being applied to div instead of p (#9968)  
2557cb2f9 Fix pinned statuses being shown in a featured hashtag (#9971)  
e02a13f64 Fix not showing custom emojis in share page emoji picker (#9970)  
88f35f339 Fix authorized applications list page design (#9969)  
c78d64d9c Use video filesize limit with gifv (#9924)  
f86413fce change "finish tutorial" text to "finish toot-orial" (#9905)  
364f2ff9a Add featured hashtags to profiles (#9755)  
d14c276e5 Add option to overwrite imported data (#9962)  
c5071f2d7 Bump capybara from 3.12.0 to 3.13.2 (#9935)  
7e33d6d19 Bump httplog from 1.2.0 to 1.2.1 (#9942)  
750c67660 Allow multiple files upload through web UI, including drag & drop (#9856)  
582f86ab3 Re-enable ignored translations that is needed (#7842)  
ed3011061 Make displaying application used to toot opt-in (#9897)  
bcfff6519 Create Redisable#redis (#9633)  
6a5e3da6b Allow most kinds of characters in URL query (fixes #8408) (#8447)  
5092d17f2 Add WebP support (#9879)  
b253d3e0c Upgrade new Web Share Target API (#9963)  
3de63b3c3 More corrections for the Slovak translation (#9959)  
ad8c71c98 Fix link color in high-contrast theme, add underlines (#9949)  
1f9519020 Refactor icons in web UI to use Icon component (#9951)  
3383ed757 Update the Slovak translation (#9958)  
0167659f5 Distinguish error messaging for mystyped URLs and deleted accounts (#9957)  
6513f6c95 Replace unlock-alt icon with unlock (#9952)  
6c513c75e Bump rails-i18n from 5.1.2 to 5.1.3 (#9943)  
4079b831e i18n: Update Polish translation  (#9945)  
7e81bca50 Bumps copyright year in README.md to 2019 (#9939)  
28866d329 (tag: v2.7.1, wakin/2.7.1) Bump version to 2.7.1 (#9932)  

うん、長いですね。すいません。v2.7.1の次についているタグがv2.8.0rc1になっています。積み上げられた更新の数も全然違いますね。

同じ内容だけど、違うIDの更新(commit)

注目してもらいたいのは、v2.7.1の直後からの更新内容とIDです。
内容は同じなのに、違うIDがついています。

これは何故かというと、v2.8.0を開発している最中に行った更新を、つまみ食いして、別の場所にコピーして持ってきているからです。
ひとつひとつの更新内容は基本的に同じですが、別の場所で作業していて、対象とするソースコードの状態も異なるので、違うIDがついた別物になっています。

stable-2.7ブランチ

別の場所には名前がついていて、stable-2.7と名付けられています。日本語で言うと「2.7の安定版」といった意味合いです。

開発中のバージョンが完成する前に、みんなに使ってもらっている前のバージョンにすぐに反映した方がいい修正がでてくることがあります。バグのヤバイやつとか、セキュリティ的にヤバイやつなどです。

こういう、新しいバージョンから、古いバージョンに一部を持ってくることをバックポート(逆輸入)と言います。

この時、v2.8.0に向かって更新を積み上げている本流(master)の流れを変えずに変更しなければいけないので、v2.7.1から別の方向に枝分かれ(ブランチ)させる必要がでてきます。そこで、これは2.7の安定版ですという意味でstable-2.7などの名前をつけて、分岐させるわけです。

ブランチの手動マージは、素人には難しい

分岐させてしまったので、v2.8.0とは似て非なるものになります。これを合流させることもできますが、同じ修正に別のIDがついているし、順番を飛ばして部分的に修正を入れてしまっているので、これを自動的に統合することは、もう難しくなっています。そこで、人間が手動で、ここはこっちの修正を採用するとか、間違って合成されてしまったものを直してあげなくてはいけなくなります。プログラムを理解できる開発者がやっても大変ですが、中身が理解できていないと、これは大変というより、無理というものです。

という事情により、枝分かれしたstable-2.7v2.7.4から、元々のv2.8.0を開発していた本流に更新するのは、ちょっと大変過ぎて無理、ということになるワケです。

とかいって、実はそんなに大変でもない

実は、v2.8.0の方が先行していて、そこからバックポートしてきたという流れははっきりしているので、どちらを採用したらいいかは基本的にわかっているわけです。なので、自動でマージできなかった部分はv2.8.0の方を採用してしまえば大丈夫です。自動で追加する側を採用するという方法もあります。興味のある方は、ぜひ調べてみてください。

技術ブログをはじめよう Qrunch(クランチ)は、プログラマの技術アプトプットに特化したブログサービスです
駆け出しエンジニアからエキスパートまで全ての方々のアウトプットを歓迎しております!
or 外部アカウントで 登録 / ログイン する
クランチについてもっと詳しく

この記事が掲載されているブログ

@noellaboの技術ブログ

よく一緒に読まれる記事

0件のコメント

ブログ開設 or ログイン してコメントを送ってみよう
目次をみる
技術ブログをはじめよう Qrunch(クランチ)は、プログラマの技術アプトプットに特化したブログサービスです
or 外部アカウントではじめる
10秒で技術ブログが作れます!