<html><head></head><body>I really appreciate that you did that.<br>Given our model here, this is the right thing to do.<br>I hope that Jef has the time to look at the changes and can possibly include a few of them to overall reduce the difference between our trees.<br>Making that easier would be reason enough to do these rebases, but overall, I appreciate the logic behind making it easier to stay current with upstream as well.<br>I will of course not delete the NG branch, so nothing in the history is lost.<br><br>Again, thanks for doing this!<br><br>When I'm back at my computer, I'll update Subsurface to use the new branch<br><br>/D<br><br>/D<br><br><div class="gmail_quote">On May 7, 2020 3:57:34 PM PDT, Linus Torvalds <torvalds@linux-foundation.org> wrote:<blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">
<pre class="k9mail">Ok, so I've just spent several hours re-synchronizing our subsurface<br>branch with Jef's upstream.<br><br>The most trivial part of that was to just pull the changes from Jef's<br>tree - they merged cleanly, nothing odd there.<br><br>But then I tried to basically re-base all our changes on top of Jef's<br>unmodified tree, to see what all our changes actually are these days.<br><br>This resulted in two different things:<br><br> (a) a number of trivial updates to the 'Subsurface-NG' branch itself<br><br> (b) the actual new branch itself.<br><br>That (a) is basically stuff I noticed while doing the rebasing, and<br>where I decided that the differences to Jef's upstream should be<br>minimized rather than carried forward. So this is things like just<br>unnecessary left-overs from other development that just isn't relevant<br>any more. Some of it was literally just plain whitespace differences.<br><br>And (b) is basically "throw out all of our history, and try to<br>re-create the exact same end result as we got in (a)".<br><br>Dirk, I'm not exactly sure what you think is the best option here.<br>Both branches are in the usual places, I called the new branch DS9<br>(I'm not sure if your "NG" naming was a Star Trek reference, but I<br>decided it was, and that the "new new generation" is thus "deep space<br>nine").<br><br>You can see them both at github:<br><br>    <a href="https://github.com/subsurface/libdc/tree/Subsurface-NG">https://github.com/subsurface/libdc/tree/Subsurface-NG</a><br>    <a href="https://github.com/subsurface/libdc/tree/Subsurface-DS9">https://github.com/subsurface/libdc/tree/Subsurface-DS9</a><br><br>and the important part here is that the DS9 branch should _not_ be<br>pulled into the NG branch - the two have exactly the same tree<br>content-wise, but they have very different history. The DS9 branch has<br>thrown out all our old history, and is just a linear series of 27<br>commits on top of what is Jef's upstream as of today:<br><br>    Update compiler flags and dc version suffix for Subsurface-NG<br>    Fix up .gitignore file<br>    Clean up 'dc_tankvolume_t' type and make it 'dc_tankinfo_t'<br>    Add generic field cache and string field infrastructure<br>    Add time-to-surface sample type<br>    Add string event sample type<br>    Extend on the event flag type with severity and types<br>    Add 'usbstorage' iostream<br>    Add backend for Garmin Descent Mk1<br>    Add support for the Deepblu Cosmiq+ dive computer<br>    Suunto Eon Steel: sort the dive list properly<br>    Use the extended parsing facilities for the Suunto EON Steel backend<br>    Atomics Cobalt: use the new DC string fields<br>    Make custom iostream read/write wrapper more rebust<br>    Add back Mares BlueLink Pro bluetooth support tweaks<br>    Add serial number to parser creation for ostc, atom2, shearwater<br>and suunto d9<br>    Heinrichs Weikamp OSTC: add extended information parsing<br>    Suunto D9 family: add extended information parsing<br>    Oceanic Atom2: add extended string information parsing<br>    Oceanic: when encountering an unknown device, report the version string<br>    i770R: parse tank pressure and water salinity like the i750tc<br>    Mark Aqualung i750TC as Bluetooth capable<br>    Cressi: mark Cartesio and Goa as supporting BLE<br>    Shearwater Petrel: make the hardware ID decoding a bit easier to read<br>    Shearwater Teric: add support for the TAG INFO_EVENT<br>    Shearwater: fix (again) per-cell ppO2 reporting<br>    Shearwater: add extended information parsing<br><br>while our "real" history (in Subsurface-NG) right now is 114 commits<br>of development, and 28 merges..<br><br>So the DS9 branch is very much a simplified history that tries to make<br>it much more obvious exactly what we've changed.<br><br>In contrast, the commits in our current NG branch are a mix of<br>development (ie you can see the history of how some of the backends<br>have been developed), and updates that Jef has taken and merged back<br>(sometimes in different versions), and various updates related to<br>interface changes (either the libdivecomputer iostream changes, or<br>just our own cleanups to unify the field cache and string helpers.<br><br>Jef - that "Suunto Eon Steel: sort the dive list properly" commit is<br>very much a bug-fix. You should take it, regardless of any subsurface<br>interface issues. So is the BlueLink Pro thing, for that matter.<br><br>The rest is mostly either new backends (ie the Garmin Descent and the<br>Deeplu Cosmiq), or the extended string interface support.<br><br>Anyway, exactly *because* the new tree is bit-for-bit identical<br>between the NG and DS9 branches, there's no difference on a code level<br>between the two, and the only real difference is that DS9 makes it<br>much easier to see what the changes are from Jef's point.<br><br>Dirk, I'm not sure you care deeply. I decided to do it mainly because<br>I wanted to know what our state was. It's not too bad. The only really<br>annoying thing I found was the 'unsigned int serial' number<br>differences to the parser creation fucntions, but those haven't been<br>much of a pain lately.<br><br>But if you think that switching over to the DS9 branch makes sense,<br>that would make it (possibly) easier to do any backporting of our work<br>(or, alternatively, just do this kind of rebase again in a couple of<br>years, to keep track of our differences wrt Jef's upstream and never<br>let them become too overwhelming).<br><br>                Linus<br></pre></blockquote></div><br>-- <br>From my phone</body></html>