summaryrefslogtreecommitdiffstats
path: root/src/main/resources
Commit message (Collapse)AuthorAgeFilesLines
* Add setting to hide the navbar for those embedding GitblitJames Moger2014-03-051-0/+7
|
* Implement user "disabled" flag as an alternative to deleting the accountJames Moger2014-03-041-1/+6
|
* Lower opacity for merge commit short messages in the log panelJames Moger2014-03-031-1/+9
|
* Ticket tracker with patchset contributionsJames Moger2014-03-032-5/+409
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | A basic issue tracker styled as a hybrid of GitHub and BitBucket issues. You may attach commits to an existing ticket or you can push a single commit to create a *proposal* ticket. Tickets keep track of patchsets (one or more commits) and allow patchset rewriting (rebase, amend, squash) by detecing the non-fast-forward update and assigning a new patchset number to the new commits. Ticket tracker -------------- The ticket tracker stores tickets as an append-only journal of changes. The journals are deserialized and a ticket is built by applying the journal entries. Tickets are indexed using Apache Lucene and all queries and searches are executed against this Lucene index. There is one trade-off to this persistence design: user attributions are non-relational. What does that mean? Each journal entry stores the username of the author. If the username changes in the user service, the journal entry will not reflect that change because the values are hard-coded. Here are a few reasons/justifications for this design choice: 1. commit identifications (author, committer, tagger) are non-relational 2. maintains the KISS principle 3. your favorite text editor can still be your administration tool Persistence Choices ------------------- **FileTicketService**: stores journals on the filesystem **BranchTicketService**: stores journals on an orphan branch **RedisTicketService**: stores journals in a Redis key-value datastore It should be relatively straight-forward to develop other backends (MongoDB, etc) as long as the journal design is preserved. Pushing Commits --------------- Each push to a ticket is identified as a patchset revision. A patchset revision may add commits to the patchset (fast-forward) OR a patchset revision may rewrite history (rebase, squash, rebase+squash, or amend). Patchset authors should not be afraid to polish, revise, and rewrite their code before merging into the proposed branch. Gitblit will create one ref for each patchset. These refs are updated for fast-forward pushes or created for rewrites. They are formatted as `refs/tickets/{shard}/{id}/{patchset}`. The *shard* is the last two digits of the id. If the id < 10, prefix a 0. The *shard* is always two digits long. The shard's purpose is to ensure Gitblit doesn't exceed any filesystem directory limits for file creation. **Creating a Proposal Ticket** You may create a new change proposal ticket just by pushing a **single commit** to `refs/for/{branch}` where branch is the proposed integration branch OR `refs/for/new` or `refs/for/default` which both will use the default repository branch. git push origin HEAD:refs/for/new **Updating a Patchset** The safe way to update an existing patchset is to push to the patchset ref. git push origin HEAD:refs/heads/ticket/{id} This ensures you do not accidentally create a new patchset in the event that the patchset was updated after you last pulled. The not-so-safe way to update an existing patchset is to push using the magic ref. git push origin HEAD:refs/for/{id} This push ref will update an exisitng patchset OR create a new patchset if the update is non-fast-forward. **Rebasing, Squashing, Amending** Gitblit makes rebasing, squashing, and amending patchsets easy. Normally, pushing a non-fast-forward update would require rewind (RW+) repository permissions. Gitblit provides a magic ref which will allow ticket participants to rewrite a ticket patchset as long as the ticket is open. git push origin HEAD:refs/for/{id} Pushing changes to this ref allows the patchset authors to rebase, squash, or amend the patchset commits without requiring client-side use of the *--force* flag on push AND without requiring RW+ permission to the repository. Since each patchset is tracked with a ref it is easy to recover from accidental non-fast-forward updates. Features -------- - Ticket tracker with status changes and responsible assignments - Patchset revision scoring mechanism - Update/Rewrite patchset handling - Close-on-push detection - Server-side Merge button for simple merges - Comments with Markdown syntax support - Rich mail notifications - Voting - Mentions - Watch lists - Querying - Searches - Partial miletones support - Multiple backend options
* Add the No Docs page if there are no root documentsJames Moger2014-03-011-0/+12
|
* Show "Displayname (username)" in palettes for edit team and repository pagesAlfred Schmid2014-02-191-0/+5
|
* Add FontAwesome dependencyJames Moger2013-12-306-0/+418
| | | | Change-Id: I2dc302fea7a7cd21d4569e835ed987748ff8938b
* Add support for per-repository bugtraq configurationJames Moger2013-12-031-0/+4
| | | | | | | | | | | | | | | | | | | Imported the reference implementation contributed by syntevo which is used in their SmartGit product. You may create a bugtraq config section inf your .git/config file OR you may add a .gitbugtraq file to the root of your repository. Example: [bugtraq "issues"] url = http://code.google.com/p/gitblit/issues/detail?id=%BUGID% logRegex = "[Ii]ssue[-#:\\s]{1}\\d+" logRegex1 = "\\d+" [bugtraq "[pullrequests"] url = "https://github.com/gitblit/gitblit/pull/%BUGID%" logRegex = "(?:pull request|pull|pr)\\s*[-#]?([0-9]+)" Change-Id: Iaba305bf4280d08cc4d1abf533c2f1365470a43f
* Add coloring modes to the blame page (issue-2, pull request #125)Alex Lewis2013-12-021-1/+20
| | | | | | | | | Blame output is now colored according to Commit (default), Author or Age. Both Commit and Author output uses random colors whereas Age uses a single color with varying tints applied to indicate the age. White indicates the eldest commit with the tint darkening as the commits get younger. Change-Id: I045458329af4765e91d5829ce3e8d28e21eeb66e
* Display common repository documents as tabs on the docs pageJames Moger2013-11-141-7/+62
| | | | Change-Id: I6935fa45598da847936748b474a3da47e94efaac
* Implement mirror executor (issue-5)James Moger2013-11-131-0/+0
| | | | | | | | | | | | | | | | | | | | | | | | | The mirror executor will fetch ref updates for repository mirrors. This feature is disabled by default and can be enabled by setting git.enableMirroring=true. The period between update checks is configurable, but it is global. An individual rpeository may not set it's own update schedule. Requirements: 1. you must manually clone the repository using native git git clone --mirror git://somewhere.com/myrepo.git 2. the "origin" remote must be the mirror source 3. the "origin" repository must be accessible without authentication OR the credentials must be embedded in the origin url (not recommended) Notes: 1. "origin" SSH urls are untested and not likely to work 2. mirrors cloned while Gitblit is running are likely to require clearing the gitblit cache (link on the repositories page of an administrator account) 3. Gitblit will automatically repair any invalid fetch refspecs with a "//" sequence. Change-Id: I4bbe3fb2df106366ae4c2313596d0fab0dfcac46
* Refactor markup processing in preparation for supporting other formatsJames Moger2013-11-121-0/+23
| | | | Change-Id: I0eb217064abc4f4b0f6bfbbc21302c470cc2f9c6
* DocumentationJames Moger2013-10-251-3/+3
| | | | Change-Id: I717e13d1f852a4adf50b547f4769dd62da2384ce
* Remove emphasis coloring in markdown divJames Moger2013-10-251-4/+0
| | | | Change-Id: Ie81e94546868a4a16c302ed0b283ac86d3491276
* Support for intra-Markdown linking using [[WikiLinks]] syntax (issue-324)James Moger2013-10-251-9/+8
| | | | | | | | | All WikiLinks must be specified relative to the root of the repository. The displayed link text is stripped to just the document name. Spaces in the document name are replaced with '-' characters; this is consistent with wiki syntax and Github. Change-Id: Id3fb1b5441352d9bacc4993a5b85882db113693b
* Fix incorrect mappings for some iconic classesJames Moger2013-10-011-4/+4
| | | | Change-Id: Ieeb7159768453a17b01b8e2a59289b256c6c3492
* Tweak diffstat cssJames Moger2013-10-011-2/+2
| | | | Change-Id: I0f6551bb7ca2f9b8908e95359b375c23daeab380
* Add normalized diffstats to the commit, commitdiff, and compare pagesJames Moger2013-09-271-0/+39
| | | | Change-Id: I8f26746a611e9ab955efe8b2597cc81db48fb085
* Reverse line links in blob view (issue-309)James Moger2013-09-192-14/+17
|
* CSS tweaks for responsive layoutJames Moger2013-09-181-3/+4
|
* Add support for rendering Markdown commit messages (issue-203)Bret K. Ikehara2013-09-181-0/+3
|
* Implemented a graph servlet based on EGit/JGit's PlotWalk (issue-194)James Moger2013-09-171-1/+27
| | | | | | | | | The graph is generated server-side and therefore requires that the commit table row height be fixed and match the row height of the servlet. There will be layout misalignment if remotes refs are displayed. Perhaps this can be improved in the future. Change-Id: I39d0ffc7b1c3679976ce8c198c772ff86238f1a5
* Move reflog styles to css to shrink dashboard page sizesJames Moger2013-06-281-0/+18
|
* CSS padding adjustmentsJames Moger2013-06-271-1/+1
|
* Support custom header colors and finish theme flattening (issue 209)James Moger2013-06-262-23/+26
|
* Support custom header logo images of 120x45 (issue 208)James Moger2013-06-261-1/+1
|
* Reflogs, Digests, and DashboardsJames Moger2013-06-181-3/+19
| | | | | | Renamed pushlog to reflog to better match it's current and future purpose. Split PushesPanel into ReflogPanel and DigestsPanel. Overhauled project pages and gave them a coherent purpose from the dashboard.
* Moved AngularJS to be a classpath resourceJames Moger2013-06-181-163/+0
|
* Refinements to push log display and daily digestsJames Moger2013-05-312-7/+18
| | | | | | * Properly support timezone-based date groupings * Polish css for the major browsers on Win & Linux * Use Gitblit constants for refs instead of JGit constants
* Added a Dashboard page with a daily ref log of starred/owned reposJames Moger2013-05-302-2/+185
| | | | | This is a work-in-progress and is mostly working like I want, but will require some refactoring to make it even more useful and less complex.
* Added Iconic font and replaced push log gravatars with Iconic symbolsJames Moger2013-05-2516-1/+2004
|
* Polish the commit pageJames Moger2013-05-241-1/+1
|
* Added support for displaying refs/pull/n/head|mergeJames Moger2013-05-241-3/+8
|
* Implemented compare page for branch/tag/manual diffs (issue-75, issue-133)James Moger2013-05-231-0/+5
|
* Support relative links in commitdiff page and polish cssJames Moger2013-05-231-0/+14
|
* Added support for Github Windows/Mac clientsJames Moger2013-05-211-0/+0
|
* Overhauled navigation and flattened lookJames Moger2013-05-195-23/+120
|
* Updated Tower icon per fournova's requestJames Moger2013-05-151-0/+0
|
* Updated syntevo SmartGit/Hg iconJames Moger2013-05-131-0/+0
|
* Css tweaks to app menus and top nav barJames Moger2013-05-111-19/+29
|
* Added Tower iconJames Moger2013-05-101-0/+0
|
* Use SparkleShare icon instead of star icon for app menuJames Moger2013-05-101-0/+0
|
* Implemented application menus for repository url panelJames Moger2013-05-094-12/+98
|
* Uber-cool repository panel overhaulJames Moger2013-05-071-4/+11
|
* Improved the repository url panel and show git daemon url, appropriatelyJames Moger2013-05-021-0/+24
| | | | | This will probably be refined some more to merge the http/https and git urls into a single url panel.
* Simplify resource loadingJames Moger2013-04-0214-42/+0
|
* Reorganized to Apache Standard Directory Layout & integrated MoxieJames Moger2013-03-27108-0/+8826
This is a massive commit which reorganizes the entire project structure (although it is still monolithic), removes the Build classes, and switches to Moxie, a smarter Ant build tookit based on the original Gitblit Build classes. The Ant build script will likely require additional fine-tuning, but this is big step forward.