Git repository management server understanding your code. Free for small teams.

Git log is powerful but not easy to use. GitPlex mimics git log in web interface, with hints and auto-completes available to help user quickly constructing desired commit queries.

Can navigate to desired files by searching symbols (currently Java, JavaScript, and C), file names or texts. The advanced search dialog also enables complex code queries via regular expressions.

Source structure outlines (currently Java and JavaScript)

With source code outline, one can get an structural overview of the source file, and navigate to interesting positions if necessary.

Jump to symbol definitions (currently Java, JavaScript and C)

Hover mouse over a symbol in source view or diff view to show possible definitions for quick navigation.

Quickly highlight symbol occurrences in current file

Click a symbol in source view to quickly find out its occurrences in current file, with positions marked in scroll bar.

Able to control write access on branch, directory and file level

With ref and file based gatekeepers, repository administrator can control who can write to certain branches, directories or file patterns.

Able to control who can create/delete tags

With ref and operation based gatekeepers, repository administrator can control who can create/delete certain tags.

Prevent history of specified branches from being rewritten

With ref and history protection based gatekeepers, repository administrator can protect history of certain branches from being rewritten.

Comment any portion of code or diff to start discussion

One can select any portion of code or diff to add code comments. GitPlex tracks comment activity along with code changes to better organize code discussion context.

Require approval of certain users or teams based on rule

Gatekeepers can be set up to have different users/teams responsible for different modules. Pull requests touching those modules can only be integrated into target branch when they are approved by corresponding users/teams.

Track review rounds and notify relevant participants

As reviewer approves/disapproves pull requests, GitPlex decides if it is the time to complete current round of review with help of gatekeepers, and notify the submitter to update pull request with new commits. GitPlex then notify relevant reviewers to perform new round of review upon pull request update.

Track raised concerns to make sure all are taken care of

It is possible that user may forget to respond/check some code comments. GitPlex will warn user as they approve/integrate pull requests if there are unresolved code comments corresponding to them.

Increment pull request review with change filtering

Reviewer can select to only check changes since last review and can further limit the changes to his/her interested modules to reduce the review overheads.

Rule based vote obsolescence upon pull request update

When pull request is updated with new commits, GitPlex only obsolete votes of affected modules. Votes of unaffected modules will still be in effect to reduce review overheads.

Track commit rebase/squash in pull request

Commits in pull requests might be rebased or squashed to keep history clean. GitPlex tracks these commits and grayed them out to help understanding what happened. Code comments on rebased commits will still be available and attached votes will still be effective as long as there is no substantial changes to relevant modules. User can still be able to compare new commits with any rebased commits to check increment changes if necessary.

Able to work the Gerrit way inside pull requests

With the gerrit style patch gatekeeper, one can adopt gerrit workflow inside pull request to make sure a pull request only contains a single atomic commit for review, and subsequent updates to the pull request can only be made by amending the commit being reviewed.

Optionally rebase/squash commits upon pull request integration

GitPlex has the flexibility of using different integration strategies when integrating pull request into target branch. For instance, one can choose the squash strategy to have GitPlex squash commits automatically before merging, or rebase commits onto target branch.

Preview pull request integration result and build status

No matter which integration strategy is selected (rebase/squash/merge etc.), GitPlex pre-calculates the integration commit between source branch and target branch, and show the diff between target branch and this integration commit to make things transparent. The integration commit can also be sent to build system for verifying before it can be actually integrated.