docs/ikteam: Delete most files.
[haiku.git] / docs / develop / net / HowTo-Synchronize_with_NetBSD.md
blobf7af1706d9e3cc9f396759a9e97f0bb3f6944941
1 How to Merge Patches from NetBSD Trunk
2 ============================================
3 Using the NetBSD CVS is a pain, so instead, the preferred thing to do is to use
4 [IIJ's Git mirror](https://github.com/IIJ-NetBSD/netbsd-src). The code here is
5 in the tree at a few places:`inet` is at `lib/libc/inet`, irs is scattered
6 across the tree, and `resolv` is at `lib/libc/resolv`.
8 The preferable way to merge is to take the last commit merged from IIJ's mirror
9 (can be found in the merging commit in Haiku, if the merger has done their work
10 properly) and check all commits since then to see if they apply or not (some
11 apply to documentation we don't have, etc.) Cherry-pick the ones that do, and
12 download them as git-format-patch patches (by adding `.patch` onto the end of the
13 commit URL).
15 To convert the patches to have the correct paths to the resolv/inet/etc. code, use
16 `sed`:
17 ```
18 sed s%lib/libc/resolv%src/kits/network/netresolv/resolv%g -i *.patch
19 ```
20 (You'll need to use similar commands for the `inet` and `irs` code.)
22 Then apply the patches using `git apply --reject file.patch`. Git will spew a lot of
23 errors about files in the patch that aren't in the tree, and then it will warn that
24 some hunks are being rejected. Review the rejected hunks **VERY CAREFULLY**, as
25 some code in Haiku's NetResolv is not in NetBSD's and vice versa, and so some patches
26 may not apply cleanly because of that. You might have to resort to merging those
27 hunks by hand, if they apply at all to Haiku's code.
29 Commit the changes all at once, but list all the commits merged from NetBSD
30 in the commit message (see previous merges for the style to follow).