Show HN: GitPlex – A new Git repo management server with code review
pmease.com
pmease.com
I've found, as the OP did, that the GitHub/Lab/Bucket code review UIs strongly encourage nitpicking over code style and strongly discourage true insightful reviews on a design and architecture level. This happens simply because of the amount of effort your have to do to see and feel the wider impact of a pull request on your codebase. It's like looking at code with blinders on.
So what you want to do is checkout the pull request and use your editor. We made this a habit here at TalkJS and the quality, speed and usefulness of our code reviews skyrocketed.
Actually we take it one step further: we dropped the commenting interface altogether. Our code reviews are commits, with code comments by a particular format:
// REVIEW(marcin<-egbert): Won't the event listener get re-registered every time this function is called?
My colleague Marcin can find all reviews intended for him by grepping for `REVIEW(marcin`. Git ensures that even across merges and code changes, comments stay put, and once Marcin applies the review comment he removes the comment. He can reply by adding a comment in the same format.The fact that review comments are right there in the git history also really helps track down complicated problems. Finally, we get the freedom of merging a PR anyway even though some things ought to be better, without losing track of the review comment. Obviously that's a code smell, but sometimes it's better to release first and refactor next day.
But even if you think this is insane and reviews don't belong in the code, I'd like to warmly encourage you to use your editor for reviews.
Anyone have any recommendations for how to efficiently handle conflicts/reviews via vim with a small screen?
Anyways, you can try a narrow width font: I love M+ 1mn, though the narrow width causes problems when it doesn't have a certain unicode point defined and falls back to a full width font..
Note that OSX by default has some type of feature that reduces the realestate you have available.. don't ask me to explain it, i haven't really used it much.
Basically, with the Retina monitors, the resolution is actually too high for a lot of scenarios. You end up with tiny fonts, tiny icons, etc. So they somehow sample/zoom the sizes so that you get both really crisp renders but with very few real pixels on screen.
This may be what is causing you to be surprised that i am still having issues with a high resolution Retina screen. But, turning it off would be effectively the same thing as just turning my iTerm2 fontsize to ~8-10 or something tiny, allowing me to fit three panes.
Also I often find myself need to copy code from some old revisions, in that case, I just visit our web "IDE", find desired revisions with revision search helper, and open desired symbols to copy relevant code out.
are the main ones, git-time-machine is probably my favorite package period in the Atom ecosystem. As it shows what is possible with completely user created UI.
Shameless plug for a package I wrote too https://atom.io/packages/atom-git-revert which also helps on the daily!
--
I dream of a tool that facilitates code reading and exploration. It has some similar features with code review tools, namely:
- integration with version control systems
- basic semantic search/navigation
- looks clean
- not meant to be for writing code
But my dream tool also has following features I haven't seen implemented in any code review tool (or anywhere):
- annotations - not just "comments", but the ability to tag lines, to strike them out, highlight, color, scribble on them, etc. - basically anything you'd do with a printout of a code
- easy way to review history of a single file (with annotations)
- ability to easily bookmark areas / pieces of code and use those bookmarks in comments / annotations
- ability for viewing structural diagrams of the codebase
- full blown semantic search - who calls, calls who, etc.
- project-structure-oriented, not repository-history/commit-oriented
Basically, I'd love a tool not for collaboration, but for individual work - a tool that would facilitate exploring and familiarizing yourself with big codebases, as well as empower one when the time comes to do bigger refactorings.
Would be doubly useful if I could use it on a tablet, so that I could get up from in front of my computer to go and think about the changes I'm about to make (right now, I end up actually printing code if I have to refactor something very messy).
And try browsing code on Sourcegraph: https://sourcegraph.com/github.com/gorilla/websocket/-/blob/... (we support other languages as well). Right-click on "parseURL" and choose "Find All References". If you click on "HasPrefix" a few lines below, you'll see a cross-repo jump (and the right-click menu lets you see global/cross-repo references).
Sign up at https://sourcegraph.com to get it on your own GitHub repos.
I found a small issue with "peek definition" window: http://imgur.com/TT2KmpR.
(I am not affiliated with Jetbrains in any way)
Pros/cons of this tool?
Pros: I'm obviously biased so I won't go into those.
Cons: it's not a lightweight tool that's happy with 1 gig of memory. Configuring and waiting for code indexes takes a bit of time, especially if you're trying it out on large legacy codebases. It also won't manage a Git repository for you.
https://gitsense.com/rapid-browsing-1.mp4
And this is an example of bulk diffs browsing:
https://gitsense.com/rapid-browsing-2.mp4
You can find the source for the chrome extension at
http://github.com/gitsense/insight
And the Git indexing engine at
Edit:
It may not be obvious, but for the second example, I'm clicking the right arrow to quickly iterate through the diffs.
For the diff, this is done in realtime with https://github.com/Microsoft/monaco-editor
Also my product isn't really dependent on GitLab or GitHub. It works in standalone mode as well.
For what it's worth, features like that (along with, say, line-by-line staging) are the reason why I usually use a GUI client and only drop down to the command line when necessary.
Something even closer to what you're asking for... in github hit the 'history' button on a file (next to blame) and you'll get the commits which affected it. Hit the 7 character commit-id and you'll be taken to the diff of that change, jumped specifically to the file in question.
The history button in github is close to what I'd like, but it's not quite as friendly as single next/previous buttons that just paginate the changes to a file. That makes cycling through the history very easy, whilst 'click commit id, back, remember which commit we just viewed, click following commit id, repeate' all sounds a bit painful.
e.g. code navigation [1], search [2] and CodeLens [3].
[1] https://referencesource.microsoft.com/#mscorlib/system/strin...
[2] https://www.visualstudio.com/en-us/docs/search/code/advanced...
Checkout android code base for instance: http://gitplex.pmease.com/demo/android-framework-base/files?...
I actually created this tool to suffice my own needs when browsing history of QuickBuild source code.
Very vague landing page with signup here:
What kind of annotations would not make sense as comments?
Comments are inline with the code. Annotations are aside, and serve both as visual anchors and as "aside" notes.
You may also put annotations on any diffs: http://gitplex.pmease.com/demo/android-framework-base/commit...
--
[0] - "smart stick" can be implemented by remembering not just the line in file, but also the contents of that line and a (fuzzy) context.
I'm curious what you think of the single file history in current systems, are they OK but just missing annotations?
That's something that baffles me: the complete lack of a comfortable (or at least not painful) way to read and annotate source code on Android.
My name is Angela and I do research for Bitbucket. I’m kicking off a round of discussions with people who use Git tools. Ideally, I’d like to talk to people that sit on a team of 3 or more. If this is you, I would love to talk to you about your experience with <using> Git tools, or just some of the pain points that are keeping you up at night when doing your jobs.
We’ll just need 30 mins of your time, and as a token of my thanks to those that participate, I’d like to offer a US$50 Amazon gift voucher.
If you’re interested, just shoot me an email with your availability over the next few weeks and we can set up a time to chat for 30 minutes. Please also include your timezone so we can schedule a suitable time (as I’m located in San Francisco). Hope to talk to you soon!
Cheers, Angela Guo aguo@atlassian.com
Then, you could build various frontends to handle these in a user friendly way if you like. But also, would be accessible and editable in your favorite text editor.
A typical review process suggested by GitPlex can be found here: http://wiki.pmease.com/display/GP10/Iterative+Review+with+Pu...
(but it's a hosted service)
Being hosted is not always a bad thing, thinking in the cost of maintenance it can deserve the price.
It's really close to the Linux kernel development model and it scales very well.
The IDE-like source parsing is interesting, and I disagree with some of the other commenters here that that should only exist in an IDE, but the java limitation makes that just a novelty for us.
Particularly though the gerrit-style workflow and the rules engine for permissions is enticing. We'd love to move to something like gerrit but don't want to give up the friendliness of bitbucket/github.
Nice job.
[1] https://builtwith.com/?http%3a%2f%2fgitplex.pmease.com%2fdem...
"...not satisfying"? I think what you want to write here is something like this: "We created GitPlex to manage our own code as a result of dissatisfaction with existing tools on the market" or even better, a sentence shorter than that.
But developers are, or should be, power users. And in that regard a tool like this is VERY welcome. A tool that exposes some more sharp edges in exchange for flexibility.
an example of this is here[1], batched comments with the multiple threads of discussions across various revisions and tracked to resolution.
Would be particularly interested by C# support, and with the tooling that Microsoft lately, I think it would be a perfect fit !
Features look good though and the interface is nice.
docker run -p 6610:6610 frankh/gitplexThanks