|
|
|
@ -381,3 +381,51 @@ GUI
|
|
|
|
|
- *Rationale*: Model classes pass through events and data from the core, they
|
|
|
|
|
should not interact with the user. That's where View classes come in. The converse also
|
|
|
|
|
holds: try to not directly access core data structures from Views.
|
|
|
|
|
|
|
|
|
|
Git and github tips
|
|
|
|
|
---------------------
|
|
|
|
|
|
|
|
|
|
- For resolving merge/rebase conflicts, it can be useful to enable diff3 style using
|
|
|
|
|
`git config merge.conflictstyle diff3`. Instead of
|
|
|
|
|
|
|
|
|
|
<<<
|
|
|
|
|
yours
|
|
|
|
|
===
|
|
|
|
|
theirs
|
|
|
|
|
>>>
|
|
|
|
|
|
|
|
|
|
you will see
|
|
|
|
|
|
|
|
|
|
<<<
|
|
|
|
|
yours
|
|
|
|
|
|||
|
|
|
|
|
original
|
|
|
|
|
===
|
|
|
|
|
theirs
|
|
|
|
|
>>>
|
|
|
|
|
|
|
|
|
|
This may make it much clearer what caused the conflict. In this style, you can often just look
|
|
|
|
|
at what changed between *original* and *theirs*, and mechanically apply that to *yours* (or the other way around).
|
|
|
|
|
|
|
|
|
|
- When reviewing patches which change indentation in C++ files, use `git diff -w` and `git show -w`. This makes
|
|
|
|
|
the diff algorithm ignore whitespace changes. This feature is also available on github.com, by adding `?w=1`
|
|
|
|
|
at the end of any URL which shows a diff.
|
|
|
|
|
|
|
|
|
|
- When reviewing patches that change symbol names in many places, use `git diff --word-diff`. This will instead
|
|
|
|
|
of showing the patch as deleted/added *lines*, show deleted/added *words*.
|
|
|
|
|
|
|
|
|
|
- When reviewing patches that move code around, try using
|
|
|
|
|
`git diff --patience commit~:old/file.cpp commit:new/file/name.cpp`, and ignoring everything except the
|
|
|
|
|
moved body of code which should show up as neither `+` or `-` lines. In case it was not a pure move, this may
|
|
|
|
|
even work when combined with the `-w` or `--word-diff` options described above.
|
|
|
|
|
|
|
|
|
|
- When looking at other's pull requests, it may make sense to add the following section to your `.git/config`
|
|
|
|
|
file:
|
|
|
|
|
|
|
|
|
|
[remote "upstream-pull"]
|
|
|
|
|
fetch = +refs/pull/*:refs/remotes/upstream-pull/*
|
|
|
|
|
url = git@github.com:bitcoin/bitcoin.git
|
|
|
|
|
|
|
|
|
|
This will add an `upstream-pull` remote to your git repository, which can be fetched using `git fetch --all`
|
|
|
|
|
or `git fetch upstream-pull`. Afterwards, you can use `upstream-pull/NUMBER/head` in arguments to `git show`,
|
|
|
|
|
`git checkout` and anywhere a commit id would be acceptable to see the changes from pull request NUMBER.
|
|
|
|
|