[[Source Control]] [[Git]]
-
Do you think of a git commit as:
- A patch file / diff + metadata / parents
- A snapshot of the source directory + metadata (commit message, parents)
- Both
- Something else
-
When you do code reviews, do you:
- Look at the full patch (compare files in github, review view in phabricator)
- Look at individual commits / commit history
- Checkout the feature branch
- Checkout what the merge result would be
- Checkout individual commits of the feature branch
- Run the software under review manually
-
Do you rebase branches before opening a pull request?
-
Do you have long running feature development?
- Do you do "long" feature development in side branches?
- How often do you merge the progress of long running feature development into the main branch?
-
Do you use squash merges? Fast forward merges?
- If yes, why?
- If not, why?
-
Do you look at the git history?
- If so, using which tools, and in what way?
-
Do you clean up your branch history before submitting a PR?
-
Do you do interactive staging / selective staging (only certain hunks, etc...)?
- If so, which tools do you use?
-
How often do you encounter merge conflicts?
-
If you encounter merge conflicts, what is a typical conflict size?
-
What techniques do you use to resolve git conflicts?
- Do you use git rerere?
-
What is your current git situation:
- How many repos?
- Average repo size:
- Contributors
- Age
- Overall LOC
- Number of commits on main
- Number of merged pull requests on main
- Number of pull requests merged per week
- Pull requests:
- Average commit count in pull request
-
Which source control systems did you use in the past:
- Copy folders / zip folders
- RCS
- CVS
- SVN
- Perforce
- Visual Sourcesafe
- mercurial
- arch/monotone/artisanal
-
Which source control webapps/services do you use for code reviews:
- Self hosted
- Phabricator
- gitlab
- github
- bitbucket
- jetbrains upsource
- other
-
How long have you been using git for?
-
How well do you know git internals?
- I am a git contributor
- I implemented a git clone / I know them quite well
- I roughly know about git internals
- Not well
-
Do you use additional CLI tools (git extensions, etc...) to assist you when working with source control?
-
How much did you tweak your gitconfig (how many aliases, special tweaks, etc...)
-
Do you help other colleagues with source control (git) issues?
- If so, what are the issues you usually encounter?
- How much git-fu do you have to apply to solve the issues?
-
Do you use code style as a way to facilitate source control operations?
-
What kind of merge conflicts do you most commonly have?
- Conflicts on index files like package.json or Makefile
- Conflicts on function argument lists
- Conflicts on terse one-line style code