Ticket tracker with patchset contributions
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
10 anni fa Ticket tracker with patchset contributions
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
10 anni fa Ticket tracker with patchset contributions
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
10 anni fa Improve the commitdiff.
* Optimize CSS: simplify selectors. That alone cuts rendering time in
half!
* Adapt HTML generation accordingly.
* Change line number generation so that one can select only code lines.
Also move the +/- out of the code column; it also gets in the way
when selecting.
* Omit long diffs altogether.
* Omit diff lines for deleted files, they're not particularly
interesting.
* Introduce a global limit on the maximum number of diff lines to show.
* Supply translations for the languages I speak for the new messages.
https://code.google.com/p/gitblit/issues/detail?id=450 was about a diff
with nearly 300k changed lines (with more then 3000 files deleted). But
one doesn't have to have such a monster commit to run into problems. My
FF 32 become unresponsive for the 30+ seconds it takes it to render a
commitdiff with some 30000 changed lines. (90% of which are in two
generated files; the whole commit has just 20 files.) GitHub has no
problems showing a commitdiff for this commit, but omits the two large
generated files, which makes sense.
This change implements a similar thing. Files with too many diff lines
get omitted from the output, only the header and a message that the
diff is too large remains. Additionally, there's a global limit on
the length of a commitdiff; if we exceed that, the whole diff is
truncated and the files not shown are listed.
The CSS change improves performance by not using descendant selectors
for all these table cells. Instead, we assign them precise classes and
just use that in the CSS.
The line number generation thing using data attributes and a :before
selector in the CSS, which enables text selections only in the code
column, is not strictly XHTML 1.0. (Data attributes are a feature of
HTML 5.) However, reasonably modern browsers also handle this correctly
if the page claims to be XHTML 1.0. Besides, the commitdiff page isn't
XHTML compliant anyway; I don't think a pre-element may contain divs
or even tables.
(Note that this technique could be used on other diff pages, too. For
instance on the blame page.) 9 anni fa Improve the commitdiff.
* Optimize CSS: simplify selectors. That alone cuts rendering time in
half!
* Adapt HTML generation accordingly.
* Change line number generation so that one can select only code lines.
Also move the +/- out of the code column; it also gets in the way
when selecting.
* Omit long diffs altogether.
* Omit diff lines for deleted files, they're not particularly
interesting.
* Introduce a global limit on the maximum number of diff lines to show.
* Supply translations for the languages I speak for the new messages.
https://code.google.com/p/gitblit/issues/detail?id=450 was about a diff
with nearly 300k changed lines (with more then 3000 files deleted). But
one doesn't have to have such a monster commit to run into problems. My
FF 32 become unresponsive for the 30+ seconds it takes it to render a
commitdiff with some 30000 changed lines. (90% of which are in two
generated files; the whole commit has just 20 files.) GitHub has no
problems showing a commitdiff for this commit, but omits the two large
generated files, which makes sense.
This change implements a similar thing. Files with too many diff lines
get omitted from the output, only the header and a message that the
diff is too large remains. Additionally, there's a global limit on
the length of a commitdiff; if we exceed that, the whole diff is
truncated and the files not shown are listed.
The CSS change improves performance by not using descendant selectors
for all these table cells. Instead, we assign them precise classes and
just use that in the CSS.
The line number generation thing using data attributes and a :before
selector in the CSS, which enables text selections only in the code
column, is not strictly XHTML 1.0. (Data attributes are a feature of
HTML 5.) However, reasonably modern browsers also handle this correctly
if the page claims to be XHTML 1.0. Besides, the commitdiff page isn't
XHTML compliant anyway; I don't think a pre-element may contain divs
or even tables.
(Note that this technique could be used on other diff pages, too. For
instance on the blame page.) 9 anni fa Add a blink comparator and pixel difference to image diffs
Pixel difference uses CSS mix-blend-mode, which is supported currently
only on Firefox >= 32 and on Safari >= 7.1. Implementation is behind a
Javascript feature test.
For other browsers, there's a blink comparator.
Code changes:
* ImageDiffHandler now takes the page it's used on as argument. We need
that to get labels. DOM generated is a
little bit different (new controls).
* Diff pages adapted to new constructor of ImageDiffHandler.
* CSS and Javascript changes implementing the new controls, making use
of two new static image resources. Since I felt that the new controls
deserved tooltips, I also gave the opacity slider a tooltip: changed
to <a>, and slider handle changed from <div> to <span>. CSS ensures
everything still displays the same (basically display:inline-block).
* Supplied messages for English, French, and German for the new
tooltips.
Tested on IE8, Safari 6.1.6 & 7.1, Chrome 38, FF 33.1 & FF 3.6.13 9 anni fa |
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786 |
- gb.repository = repository
- gb.owner = owner
- gb.description = description
- gb.lastChange = last change
- gb.refs = refs
- gb.tag = tag
- gb.tags = tags
- gb.author = author
- gb.committer = committer
- gb.commit = commit
- gb.age = age
- gb.tree = tree
- gb.parent = parent
- gb.url = URL
- gb.history = history
- gb.raw = raw
- gb.object = object
- gb.ticketId = ticket id
- gb.ticketAssigned = assigned
- gb.ticketOpenDate = open date
- gb.ticketStatus = status
- gb.ticketComments = comments
- gb.view = view
- gb.local = local
- gb.remote = remote
- gb.branches = branches
- gb.patch = patch
- gb.diff = diff
- gb.log = log
- gb.moreLogs = more commits...
- gb.allTags = all tags...
- gb.allBranches = all branches...
- gb.summary = summary
- gb.ticket = ticket
- gb.newRepository = new repository
- gb.newUser = new user
- gb.commitdiff = commitdiff
- gb.tickets = tickets
- gb.pageFirst = first
- gb.pagePrevious = prev
- gb.pageNext = next
- gb.head = HEAD
- gb.blame = blame
- gb.login = login
- gb.logout = logout
- gb.username = username
- gb.password = password
- gb.tagger = tagger
- gb.moreHistory = more history...
- gb.difftocurrent = diff to current
- gb.search = search
- gb.searchForAuthor = Search for commits authored by
- gb.searchForCommitter = Search for commits committed by
- gb.addition = addition
- gb.modification = modification
- gb.deletion = deletion
- gb.rename = rename
- gb.metrics = metrics
- gb.stats = stats
- gb.markdown = markdown
- gb.changedFiles = changed files
- gb.filesAdded = {0} files added
- gb.filesModified = {0} files modified
- gb.filesDeleted = {0} files deleted
- gb.filesCopied = {0} files copied
- gb.filesRenamed = {0} files renamed
- gb.missingUsername = Missing Username
- gb.edit = edit
- gb.searchTypeTooltip = Select Search Type
- gb.searchTooltip = Search {0}
- gb.delete = delete
- gb.docs = docs
- gb.accessRestriction = access restriction
- gb.name = name
- gb.enableTickets = enable tickets
- gb.enableDocs = enable docs
- gb.save = save
- gb.showRemoteBranches = show remote branches
- gb.editUsers = edit users
- gb.confirmPassword = confirm password
- gb.restrictedRepositories = restricted repositories
- gb.canAdmin = can admin
- gb.notRestricted = anonymous view, clone, & push
- gb.pushRestricted = authenticated push
- gb.cloneRestricted = authenticated clone & push
- gb.viewRestricted = authenticated view, clone, & push
- gb.useTicketsDescription = readonly, distributed Ticgit issues
- gb.useDocsDescription = enumerates Markdown documentation in repository
- gb.showRemoteBranchesDescription = show remote branches
- gb.canAdminDescription = can administer Gitblit server
- gb.permittedUsers = permitted users
- gb.isFrozen = is frozen
- gb.isFrozenDescription = deny push operations
- gb.zip = zip
- gb.showReadme = show readme
- gb.showReadmeDescription = show a \"readme\" Markdown file on the summary page
- gb.nameDescription = use '/' to group repositories. e.g. libraries/mycoollib.git
- gb.ownerDescription = the owner may edit repository settings
- gb.blob = blob
- gb.commitActivityTrend = commit activity trend
- gb.commitActivityDOW = commit activity by day of week
- gb.commitActivityAuthors = primary authors by commit activity
- gb.feed = feed
- gb.cancel = cancel
- gb.changePassword = change password
- gb.isFederated = is federated
- gb.federateThis = federate this repository
- gb.federateOrigin = federate the origin
- gb.excludeFromFederation = exclude from federation
- gb.excludeFromFederationDescription = block federated Gitblit instances from pulling this account
- gb.tokens = federation tokens
- gb.tokenAllDescription = all repositories, users, & settings
- gb.tokenUnrDescription = all repositories & users
- gb.tokenJurDescription = all repositories
- gb.federatedRepositoryDefinitions = repository definitions
- gb.federatedUserDefinitions = user definitions
- gb.federatedSettingDefinitions = setting definitions
- gb.proposals = federation proposals
- gb.received = received
- gb.type = type
- gb.token = token
- gb.repositories = repositories
- gb.proposal = proposal
- gb.frequency = frequency
- gb.folder = folder
- gb.lastPull = last pull
- gb.nextPull = next pull
- gb.inclusions = inclusions
- gb.exclusions = exclusions
- gb.registration = registration
- gb.registrations = federation registrations
- gb.sendProposal = propose
- gb.status = status
- gb.origin = origin
- gb.headRef = default branch (HEAD)
- gb.headRefDescription = The default branch that will be cloned and displayed on the Summary page.
- gb.federationStrategy = federation strategy
- gb.federationRegistration = federation registration
- gb.federationResults = federation pull results
- gb.federationSets = federation sets
- gb.message = message
- gb.myUrlDescription = the publicly accessible url for your Gitblit instance
- gb.destinationUrl = send to
- gb.destinationUrlDescription = the url of the Gitblit instance to send your proposal
- gb.users = users
- gb.federation = federation
- gb.error = error
- gb.refresh = refresh
- gb.browse = browse
- gb.clone = clone
- gb.filter = filter
- gb.create = create
- gb.servers = servers
- gb.recent = recent
- gb.available = available
- gb.selected = selected
- gb.size = size
- gb.downloading = downloading
- gb.loading = loading
- gb.starting = starting
- gb.general = general
- gb.settings = settings
- gb.manage = manage
- gb.lastLogin = last login
- gb.skipSizeCalculation = skip size calculation
- gb.skipSizeCalculationDescription = do not calculate the repository size (reduces page load time)
- gb.skipSummaryMetrics = skip summary metrics
- gb.skipSummaryMetricsDescription = do not calculate metrics on the summary page (reduces page load time)
- gb.accessLevel = access level
- gb.default = default
- gb.setDefault = set default
- gb.since = since
- gb.status = status
- gb.bootDate = boot date
- gb.servletContainer = servlet container
- gb.heapMaximum = maximum heap
- gb.heapAllocated = allocated heap
- gb.heapUsed = used heap
- gb.free = free
- gb.version = version
- gb.releaseDate = release date
- gb.date = date
- gb.activity = activity
- gb.subscribe = subscribe
- gb.branch = branch
- gb.maxHits = max hits
- gb.recentActivity = recent activity
- gb.recentActivityStats = last {0} days / {1} commits by {2} authors
- gb.recentActivityNone = last {0} days / none
- gb.dailyActivity = daily activity
- gb.activeRepositories = active repositories
- gb.activeAuthors = active authors
- gb.commits = commits
- gb.teams = teams
- gb.teamName = team name
- gb.teamMembers = team members
- gb.teamMemberships = team memberships
- gb.newTeam = new team
- gb.permittedTeams = permitted teams
- gb.emptyRepository = empty repository
- gb.repositoryUrl = repository url
- gb.mailingLists = mailing lists
- gb.preReceiveScripts = pre-receive scripts
- gb.postReceiveScripts = post-receive scripts
- gb.hookScripts = hook scripts
- gb.customFields = custom fields
- gb.customFieldsDescription = custom fields available to Groovy hooks
- gb.accessPermissions = access permissions
- gb.filters = filters
- gb.generalDescription = common settings
- gb.accessPermissionsDescription = restrict access by users and teams
- gb.accessPermissionsForUserDescription = set team memberships or grant access to specific restricted repositories
- gb.accessPermissionsForTeamDescription = set team members and grant access to specific restricted repositories
- gb.federationRepositoryDescription = share this repository with other Gitblit servers
- gb.hookScriptsDescription = run Groovy scripts on pushes to this Gitblit server
- gb.reset = reset
- gb.pages = pages
- gb.workingCopy = working copy
- gb.workingCopyWarning = this repository has a working copy and can not receive pushes
- gb.query = query
- gb.queryHelp = Standard query syntax is supported.<p/><p/>Please see <a target="_new" href="http://lucene.apache.org/core/old_versioned_docs/versions/3_5_0/queryparsersyntax.html">Lucene Query Parser Syntax</a> for details.
- gb.queryResults = results {0} - {1} ({2} hits)
- gb.noHits = no hits
- gb.authored = authored
- gb.committed = committed
- gb.indexedBranches = Indexed Branches
- gb.indexedBranchesDescription = Select the branches to be indexed by Lucene
- gb.noIndexedRepositoriesWarning = none of your repositories are configured for Lucene indexing
- gb.undefinedQueryWarning = query is undefined!
- gb.noSelectedRepositoriesWarning = please select one or more repositories!
- gb.luceneDisabled = Lucene indexing is disabled
- gb.failedtoRead = Failed to read
- gb.isNotValidFile = is not a valid file
- gb.failedToReadMessage = Failed to read default message from {0}!
- gb.passwordsDoNotMatch = Passwords do not match!
- gb.passwordTooShort = Password is too short. Minimum length is {0} characters.
- gb.passwordChanged = Password successfully changed.
- gb.passwordChangeAborted = Password change aborted.
- gb.pleaseSetRepositoryName = Please set repository name!
- gb.illegalLeadingSlash = Leading root folder references (/) are prohibited.
- gb.illegalRelativeSlash = Relative folder references (../) are prohibited.
- gb.illegalCharacterRepositoryName = Illegal character ''{0}'' in repository name!
- gb.selectAccessRestriction = Please select access restriction!
- gb.selectFederationStrategy = Please select federation strategy!
- gb.pleaseSetTeamName = Please enter a teamname!
- gb.teamNameUnavailable = Team name ''{0}'' is unavailable.
- gb.teamMustSpecifyRepository = A team must specify at least one repository.
- gb.teamCreated = New team ''{0}'' successfully created.
- gb.pleaseSetUsername = Please enter a username!
- gb.usernameUnavailable = Username ''{0}'' is unavailable.
- gb.combinedMd5Rename = Gitblit is configured for combined-md5 password hashing. You must enter a new password on account rename.
- gb.userCreated = New user ''{0}'' successfully created.
- gb.couldNotFindFederationRegistration = Could not find federation registration!
- gb.failedToFindGravatarProfile = Failed to find Gravatar profile for {0}
- gb.branchStats = {0} commits and {1} tags in {2}
- gb.repositoryNotSpecified = Repository not specified!
- gb.repositoryNotSpecifiedFor = Repository not specified for {0}!
- gb.canNotLoadRepository = Can not load repository
- gb.commitIsNull = Commit is null
- gb.unauthorizedAccessForRepository = Unauthorized access for repository
- gb.failedToFindCommit = Failed to find commit \"{0}\" in {1}!
- gb.couldNotFindFederationProposal = Could not find federation proposal!
- gb.invalidUsernameOrPassword = Invalid username or password!
- gb.OneProposalToReview = There is 1 federation proposal awaiting review.
- gb.nFederationProposalsToReview = There are {0} federation proposals awaiting review.
- gb.couldNotFindTag = Could not find tag {0}
- gb.couldNotCreateFederationProposal = Could not create federation proposal!
- gb.pleaseSetGitblitUrl = Please enter your Gitblit url!
- gb.pleaseSetDestinationUrl = Please enter a destination url for your proposal!
- gb.proposalReceived = Proposal successfully received by {0}.
- gb.noGitblitFound = Sorry, {0} could not find a Gitblit instance at {1}.
- gb.noProposals = Sorry, {0} is not accepting proposals at this time.
- gb.noFederation = Sorry, {0} is not configured to federate with any Gitblit instances.
- gb.proposalFailed = Sorry, {0} did not receive any proposal data!
- gb.proposalError = Sorry, {0} reports that an unexpected error occurred!
- gb.failedToSendProposal = Failed to send proposal!
- gb.userServiceDoesNotPermitAddUser = {0} does not permit adding a user account!
- gb.userServiceDoesNotPermitPasswordChanges = {0} does not permit password changes!
- gb.displayName = display name
- gb.emailAddress = email address
- gb.errorAdminLoginRequired = Administration requires a login
- gb.errorOnlyAdminMayCreateRepository = Only an administrator may create a repository
- gb.errorOnlyAdminOrOwnerMayEditRepository = Only an administrator or the owner may edit a repository
- gb.errorAdministrationDisabled = Administration is disabled
- gb.lastNDays = last {0} days
- gb.completeGravatarProfile = Complete profile on Gravatar.com
- gb.none = none
- gb.line = line
- gb.content = content
- gb.empty = empty
- gb.inherited = inherited
- gb.deleteRepository = Delete repository \"{0}\"?
- gb.repositoryDeleted = Repository ''{0}'' deleted.
- gb.repositoryDeleteFailed = Failed to delete repository ''{0}''!
- gb.deleteUser = Delete user \"{0}\"?
- gb.userDeleted = User ''{0}'' deleted.
- gb.userDeleteFailed = Failed to delete user ''{0}''!
- gb.time.justNow = just now
- gb.time.today = today
- gb.time.yesterday = yesterday
- gb.time.minsAgo = {0} mins ago
- gb.time.hoursAgo = {0} hours ago
- gb.time.daysAgo = {0} days ago
- gb.time.weeksAgo = {0} weeks ago
- gb.time.monthsAgo = {0} months ago
- gb.time.oneYearAgo = 1 year ago
- gb.time.yearsAgo = {0} years ago
- gb.duration.oneDay = 1 day
- gb.duration.days = {0} days
- gb.duration.oneMonth = 1 month
- gb.duration.months = {0} months
- gb.duration.oneYear = 1 year
- gb.duration.years = {0} years
- gb.authorizationControl = authorization control
- gb.allowAuthenticatedDescription = grant RW+ permission to all authenticated users
- gb.allowNamedDescription = grant fine-grained permissions to named users or teams
- gb.markdownFailure = Failed to parse Markdown content!
- gb.clearCache = clear cache
- gb.projects = projects
- gb.project = project
- gb.allProjects = all projects
- gb.copyToClipboard = copy to clipboard
- gb.fork = fork
- gb.forks = forks
- gb.forkRepository = fork {0}?
- gb.repositoryForked = {0} has been forked
- gb.repositoryForkFailed= fork has failed
- gb.personalRepositories = personal repositories
- gb.allowForks = allow forks
- gb.allowForksDescription = allow authorized users to fork this repository
- gb.forkedFrom = forked from
- gb.canFork = can fork
- gb.canForkDescription = can fork authorized repositories to personal repositories
- gb.myFork = view my fork
- gb.forksProhibited = forks prohibited
- gb.forksProhibitedWarning = this repository forbids forks
- gb.noForks = {0} has no forks
- gb.forkNotAuthorized = sorry, you are not authorized to fork {0}
- gb.forkInProgress = fork in progress
- gb.preparingFork = preparing your fork...
- gb.isFork = is fork
- gb.canCreate = can create
- gb.canCreateDescription = can create personal repositories
- gb.illegalPersonalRepositoryLocation = your personal repository must be located at \"{0}\"
- gb.verifyCommitter = verify committer
- gb.verifyCommitterDescription = require committer identity to match pushing Gitblit user account
- gb.verifyCommitterNote = all merges require "--no-ff" to enforce committer identity
- gb.repositoryPermissions = repository permissions
- gb.userPermissions = user permissions
- gb.teamPermissions = team permissions
- gb.add = add
- gb.noPermission = DELETE THIS PERMISSION
- gb.excludePermission = {0} (exclude)
- gb.viewPermission = {0} (view)
- gb.clonePermission = {0} (clone)
- gb.pushPermission = {0} (push)
- gb.createPermission = {0} (push, ref creation)
- gb.deletePermission = {0} (push, ref creation+deletion)
- gb.rewindPermission = {0} (push, ref creation+deletion+rewind)
- gb.permission = permission
- gb.regexPermission = this permission is set from regular expression \"{0}\"
- gb.accessDenied = access denied
- gb.busyCollectingGarbage = sorry, Gitblit is busy collecting garbage in {0}
- gb.gcPeriod = GC period
- gb.gcPeriodDescription = duration between garbage collections
- gb.gcThreshold = GC threshold
- gb.gcThresholdDescription = minimum total size of loose objects to trigger early garbage collection
- gb.ownerPermission = repository owner
- gb.administrator = admin
- gb.administratorPermission = Gitblit administrator
- gb.team = team
- gb.teamPermission = permission set by \"{0}\" team membership
- gb.missing = missing!
- gb.missingPermission = the repository for this permission is missing!
- gb.mutable = mutable
- gb.specified = specified
- gb.effective = effective
- gb.organizationalUnit = organizational unit
- gb.organization = organization
- gb.locality = locality
- gb.stateProvince = state or province
- gb.countryCode = country code
- gb.properties = properties
- gb.issued = issued
- gb.expires = expires
- gb.expired = expired
- gb.expiring = expiring
- gb.revoked = revoked
- gb.serialNumber = serial number
- gb.certificates = certificates
- gb.newCertificate = new certificate
- gb.revokeCertificate = revoke certificate
- gb.sendEmail = send email
- gb.passwordHint = password hint
- gb.ok = ok
- gb.invalidExpirationDate = invalid expiration date!
- gb.passwordHintRequired = password hint required!
- gb.viewCertificate = view certificate
- gb.subject = subject
- gb.issuer = issuer
- gb.validFrom = valid from
- gb.validUntil = valid until
- gb.publicKey = public key
- gb.signatureAlgorithm = signature algorithm
- gb.sha1FingerPrint = SHA-1 Fingerprint
- gb.md5FingerPrint = MD5 Fingerprint
- gb.reason = reason
- gb.revokeCertificateReason = Please select a reason for certificate revocation
- gb.unspecified = unspecified
- gb.keyCompromise = key compromise
- gb.caCompromise = CA compromise
- gb.affiliationChanged = affiliation changed
- gb.superseded = superseded
- gb.cessationOfOperation = cessation of operation
- gb.privilegeWithdrawn = privilege withdrawn
- gb.time.inMinutes = in {0} mins
- gb.time.inHours = in {0} hours
- gb.time.inDays = in {0} days
- gb.hostname = hostname
- gb.hostnameRequired = Please enter a hostname
- gb.newSSLCertificate = new server SSL certificate
- gb.newCertificateDefaults = new certificate defaults
- gb.duration = duration
- gb.certificateRevoked = Certificate {0,number,0} has been revoked
- gb.clientCertificateGenerated = Successfully generated new client certificate for {0}
- gb.sslCertificateGenerated = Successfully generated new server SSL certificate for {0}
- gb.newClientCertificateMessage = NOTE:\nThe 'password' is not the user's password, it is the password to protect the user's keystore. This password is not saved so you must also enter a 'hint' which will be included in the user's README instructions.
- gb.certificate = certificate
- gb.emailCertificateBundle = email client certificate bundle
- gb.pleaseGenerateClientCertificate = Please generate a client certificate for {0}
- gb.clientCertificateBundleSent = Client certificate bundle for {0} sent
- gb.enterKeystorePassword = Please enter the Gitblit keystore password
- gb.warning = warning
- gb.jceWarning = Your Java Runtime Environment does not have the \"JCE Unlimited Strength Jurisdiction Policy\" files.\nThis will limit the length of passwords you may use to encrypt your keystores to 7 characters.\nThese policy files are an optional download from Oracle.\n\nWould you like to continue and generate the certificate infrastructure anyway?\n\nAnswering No will direct your browser to Oracle's download page so that you may download the policy files.
- gb.maxActivityCommits = max activity commits
- gb.maxActivityCommitsDescription = maximum number of commits to contribute to the Activity page
- gb.noMaximum = no maximum
- gb.attributes = attributes
- gb.serveCertificate = serve https with this certificate
- gb.sslCertificateGeneratedRestart = Successfully generated new server SSL certificate for {0}.\nYou must restart Gitblit to use the new certificate.\n\nIf you are launching with the '--alias' parameter you will have to set that to ''--alias {0}''.
- gb.validity = validity
- gb.siteName = site name
- gb.siteNameDescription = short, descriptive name of your server
- gb.excludeFromActivity = exclude from activity page
- gb.isSparkleshared = repository is Sparkleshared
- gb.owners = owners
- gb.sessionEnded = Session has been closed
- gb.closeBrowser = Please close the browser to properly end the session.
- gb.doesNotExistInTree = {0} does not exist in tree {1}
- gb.enableIncrementalPushTags = enable incremental push tags
- gb.useIncrementalPushTagsDescription = on push, automatically tag each branch tip with an incremental revision number
- gb.incrementalPushTagMessage = Auto-tagged [{0}] branch on push
- gb.externalPermissions = {0} access permissions are externally maintained
- gb.viewAccess = You do not have Gitblit read or write access
- gb.overview = overview
- gb.dashboard = dashboard
- gb.monthlyActivity = monthly activity
- gb.myProfile = my profile
- gb.compare = compare
- gb.manual = manual
- gb.from = from
- gb.to = to
- gb.at = at
- gb.of = of
- gb.in = in
- gb.moreChanges = all changes...
- gb.pushedNCommitsTo = pushed {0} commits to
- gb.pushedOneCommitTo = pushed 1 commit to
- gb.commitsTo = {0} commits to
- gb.oneCommitTo = 1 commit to
- gb.byNAuthors = by {0} authors
- gb.byOneAuthor = by {0}
- gb.viewComparison = view comparison of these {0} commits \u00bb
- gb.nMoreCommits = {0} more commits \u00bb
- gb.oneMoreCommit = 1 more commit \u00bb
- gb.pushedNewTag = pushed new tag
- gb.createdNewTag = created new tag
- gb.deletedTag = deleted tag
- gb.pushedNewBranch = pushed new branch
- gb.createdNewBranch = created new branch
- gb.deletedBranch = deleted branch
- gb.createdNewPullRequest = created pull request
- gb.mergedPullRequest = merged pull request
- gb.rewind = REWIND
- gb.star = star
- gb.unstar = unstar
- gb.stargazers = stargazers
- gb.starredRepositories = starred repositories
- gb.failedToUpdateUser = Failed to update user account!
- gb.myRepositories = my repositories
- gb.noActivity = there has been no activity in the last {0} days
- gb.findSomeRepositories = find some repositories
- gb.metricAuthorExclusions = author metric exclusions
- gb.myDashboard = my dashboard
- gb.failedToFindAccount = failed to find user account ''{0}''
- gb.reflog = reflog
- gb.active = active
- gb.starred = starred
- gb.owned = owned
- gb.starredAndOwned = starred & owned
- gb.reviewPatchset = review {0} patchset {1}
- gb.todaysActivityStats = today / {1} commits by {2} authors
- gb.todaysActivityNone = today / none
- gb.noActivityToday = there has been no activity today
- gb.anonymousUser= anonymous
- gb.commitMessageRenderer = commit message renderer
- gb.diffStat = {0} insertions & {1} deletions
- gb.home = home
- gb.isMirror = this repository is a mirror
- gb.mirrorOf = mirror of {0}
- gb.mirrorWarning = this repository is a mirror and can not receive pushes
- gb.docsWelcome1 = You can use docs to document your repository.
- gb.docsWelcome2 = Commit a README.md or a HOME.md file to get started.
- gb.createReadme = create a README
- gb.responsible = responsible
- gb.createdThisTicket = created this ticket
- gb.proposedThisChange = proposed this change
- gb.uploadedPatchsetN = uploaded patchset {0}
- gb.uploadedPatchsetNRevisionN = uploaded patchset {0} revision {1}
- gb.mergedPatchset = merged patchset
- gb.commented = commented
- gb.noDescriptionGiven = no description given
- gb.toBranch = to {0}
- gb.createdBy = created by
- gb.oneParticipant = {0} participant
- gb.nParticipants = {0} participants
- gb.noComments = no comments
- gb.oneComment = {0} comment
- gb.nComments = {0} comments
- gb.oneAttachment = {0} attachment
- gb.nAttachments = {0} attachments
- gb.milestone = milestone
- gb.compareToMergeBase = compare to merge base
- gb.compareToN = compare to {0}
- gb.open = open
- gb.closed = closed
- gb.merged = merged
- gb.ticketPatchset = ticket {0}, patchset {1}
- gb.patchsetMergeable = This patchset can be automatically merged into {0}.
- gb.patchsetMergeableMore = This patchset may also be merged into {0} from the command line.
- gb.patchsetAlreadyMerged = This patchset has been merged into {0}.
- gb.patchsetNotMergeable = This patchset can not be automatically merged into {0}.
- gb.patchsetNotMergeableMore = This patchset must be rebased or manually merged into {0} to resolve conflicts.
- gb.patchsetNotApproved = This patchset revision has not been approved for merging into {0}.
- gb.patchsetNotApprovedMore = A reviewer must approve this patchset.
- gb.patchsetVetoedMore = A reviewer has vetoed this patchset.
- gb.write = write
- gb.comment = comment
- gb.preview = preview
- gb.leaveComment = leave a comment...
- gb.showHideDetails = show/hide details
- gb.acceptNewPatchsets = accept patchsets
- gb.acceptNewPatchsetsDescription = accept patchsets pushed to this repository
- gb.acceptNewTickets = allow new tickets
- gb.acceptNewTicketsDescription = allow creation of bug, enhancement, task ,etc tickets
- gb.requireApproval = require approvals
- gb.requireApprovalDescription = patchsets must be approved before merge button is enabled
- gb.topic = topic
- gb.proposalTickets = proposed changes
- gb.bugTickets = bugs
- gb.enhancementTickets = enhancements
- gb.taskTickets = tasks
- gb.questionTickets = questions
- gb.maintenanceTickets = maintenance
- gb.requestTickets = enhancements & tasks
- gb.yourCreatedTickets = created by you
- gb.yourWatchedTickets = watched by you
- gb.mentionsMeTickets = mentioning you
- gb.updatedBy = updated by
- gb.sort = sort
- gb.sortNewest = newest
- gb.sortOldest = oldest
- gb.sortMostRecentlyUpdated = recently updated
- gb.sortLeastRecentlyUpdated = least recently updated
- gb.sortMostComments = most comments
- gb.sortLeastComments = least comments
- gb.sortMostPatchsetRevisions = most patchset revisions
- gb.sortLeastPatchsetRevisions = least patchset revisions
- gb.sortMostVotes = most votes
- gb.sortLeastVotes = least votes
- gb.topicsAndLabels = topics & labels
- gb.milestones = milestones
- gb.noMilestoneSelected = no milestone selected
- gb.notSpecified = not specified
- gb.due = due
- gb.queries = queries
- gb.searchTicketsTooltip = search {0} tickets
- gb.searchTickets = search tickets
- gb.new = new
- gb.newTicket = new ticket
- gb.editTicket = edit ticket
- gb.ticketsWelcome = You can use tickets to organize your todo list, discuss bugs, and to collaborate on patchsets.
- gb.createFirstTicket = create your first ticket
- gb.title = title
- gb.changedStatus = changed the status
- gb.discussion = discussion
- gb.updated = updated
- gb.proposePatchset = propose a patchset
- gb.proposePatchsetNote = You are welcome to propose a patchset for this ticket.
- gb.proposeInstructions = To start, craft a patchset and upload it with Git. Gitblit will link your patchset to this ticket by the id.
- gb.proposeWith = propose a patchset with {0}
- gb.revisionHistory = revision history
- gb.merge = merge
- gb.action = action
- gb.patchset = patchset
- gb.all = all
- gb.mergeBase = merge base
- gb.checkout = checkout
- gb.checkoutViaCommandLine = Checkout via command line
- gb.checkoutViaCommandLineNote = You can checkout and test these changes locally from your clone of this repository.
- gb.checkoutStep1 = Fetch the current patchset \u2014 run this from your project directory
- gb.checkoutStep2 = Checkout the patchset to a new branch and review
- gb.mergingViaCommandLine = Merging via command line
- gb.mergingViaCommandLineNote = If you do not want to use the merge button or an automatic merge cannot be performed, you can perform a manual merge on the command line.
- gb.mergeStep1 = Check out a new branch to review the changes \u2014 run this from your project directory
- gb.mergeStep2 = Bring in the proposed changes and review
- gb.mergeStep3 = Merge the proposed changes and update the server
- gb.download = download
- gb.ptDescription = the Gitblit patchset tool
- gb.ptCheckout = Fetch & checkout the current patchset to a review branch
- gb.ptMerge = Fetch & merge the current patchset into your local branch
- gb.ptDescription1 = Barnum is a command-line companion for Git that simplifies the syntax for working with Gitblit Tickets and Patchsets.
- gb.ptSimplifiedCollaboration = simplified collaboration syntax
- gb.ptSimplifiedMerge = simplified merge syntax
- gb.ptDescription2 = Barnum requires Python 3 and native Git. It runs on Windows, Linux, and Mac OS X.
- gb.stepN = Step {0}
- gb.watchers = watchers
- gb.votes = votes
- gb.vote = vote for this {0}
- gb.watch = watch this {0}
- gb.removeVote = remove vote
- gb.stopWatching = stop watching
- gb.watching = watching
- gb.comments = comments
- gb.addComment = add comment
- gb.export = export
- gb.oneCommit = one commit
- gb.nCommits = {0} commits
- gb.addedOneCommit = added 1 commit
- gb.addedNCommits = added {0} commits
- gb.commitsInPatchsetN = commits in patchset {0}
- gb.patchsetN = patchset {0}
- gb.reviewedPatchsetRev = reviewed patchset {0} revision {1}: {2}
- gb.review = review
- gb.reviews = reviews
- gb.veto = veto
- gb.needsImprovement = needs improvement
- gb.looksGood = looks good
- gb.approve = approve
- gb.hasNotReviewed = has not reviewed
- gb.about = about
- gb.ticketN = ticket #{0}
- gb.disableUser = disable user
- gb.disableUserDescription = prevent this account from authenticating
- gb.any = any
- gb.milestoneProgress = {0} open, {1} closed
- gb.nOpenTickets = {0} open
- gb.nClosedTickets = {0} closed
- gb.nTotalTickets = {0} total
- gb.body = body
- gb.mergeSha = mergeSha
- gb.mergeTo = merge to
- gb.mergeType = merge type
- gb.labels = labels
- gb.reviewers = reviewers
- gb.voters = voters
- gb.mentions = mentions
- gb.canNotProposePatchset = can not propose a patchset
- gb.repositoryIsMirror = This repository is a read-only mirror.
- gb.repositoryIsFrozen = This repository is frozen.
- gb.repositoryDoesNotAcceptPatchsets = This repository does not accept patchsets.
- gb.serverDoesNotAcceptPatchsets = This server does not accept patchsets.
- gb.ticketIsClosed = This ticket is closed.
- gb.mergeToDescription = default integration branch for merging ticket patchsets
- gb.mergeTypeDescription = merge a ticket fast-forward only, if necessary, or always with a merge commit to the integration branch
- gb.anonymousCanNotPropose = Anonymous users can not propose patchsets.
- gb.youDoNotHaveClonePermission = You are not permitted to clone this repository.
- gb.myTickets = my tickets
- gb.yourAssignedTickets = assigned to you
- gb.newMilestone = new milestone
- gb.editMilestone = edit milestone
- gb.deleteMilestone = Delete milestone \"{0}\"?
- gb.milestoneDeleteFailed = Failed to delete milestone ''{0}''!
- gb.notifyChangedOpenTickets = send notification for changed open tickets
- gb.overdue = overdue
- gb.openMilestones = open milestones
- gb.closedMilestones = closed milestones
- gb.administration = administration
- gb.plugins = plugins
- gb.extensions = extensions
- gb.pleaseSelectProject = Please select the project!
- gb.accessPolicy = Access Policy
- gb.accessPolicyDescription = Choose an access policy to control repository visibility and git permissions.
- gb.anonymousPolicy = Anonymous View, Clone, & Push
- gb.anonymousPolicyDescription = Anyone can see, clone, and push to this repository.
- gb.authenticatedPushPolicy = Restrict Push (Authenticated)
- gb.authenticatedPushPolicyDescription = Anyone can see and clone this repository. All authenticated users have RW+ push permission.
- gb.namedPushPolicy = Restrict Push (Named)
- gb.namedPushPolicyDescription = Anyone can see and clone this repository. You choose who can push.
- gb.clonePolicy = Restrict Clone & Push
- gb.clonePolicyDescription = Anyone can see this repository. You choose who can clone and push.
- gb.viewPolicy = Restrict View, Clone, & Push
- gb.viewPolicyDescription = You choose who can see, clone, and push to this repository.
- gb.initialCommit = Initial Commit
- gb.initialCommitDescription = This will allow you to <code>git clone</code> this repository immediately. Skip this step if you have already run <code>git init</code> locally.
- gb.initWithReadme = Include a README
- gb.initWithReadmeDescription = This will generate a simple README document for your repository.
- gb.initWithGitignore = Include a .gitignore file
- gb.initWithGitignoreDescription = This will insert a config file that instructs your Git clients to ignore files or directories that match defined patterns.
- gb.pleaseSelectGitIgnore = Please select a .gitignore file
- gb.receive = receive
- gb.permissions = permissions
- gb.ownersDescription = Owners can manage all repository settings but they are not allowed to rename a repository unless it is their personal repository.
- gb.userPermissionsDescription = You can specify individual user permissions. These settings will override team or regex permissions.
- gb.teamPermissionsDescription = You can specify individual team permissions. These settings will override regex permissions.
- gb.ticketSettings = Ticket Settings
- gb.receiveSettings = Receive Settings
- gb.receiveSettingsDescription = The receive settings control pushes to the repository.
- gb.preReceiveDescription = Pre-receive hooks are executed after commits are received but <em>BEFORE</em> the refs are updated.<p>This is the appropriate hook for rejecting a push.</p>
- gb.postReceiveDescription = Post-receive hooks are executed after commits are received but <em>AFTER</em> the refs are updated.<p>This is the appropriate hook for notifications, build triggers, etc.</p>
- gb.federationStrategyDescription = Control if and how to federate this repository with another Gitblit.
- gb.federationSetsDescription = This repository will be included in the selected federation sets.
- gb.miscellaneous = miscellaneous
- gb.originDescription = The url from which this repository was cloned.
- gb.gc = GC
- gb.garbageCollection = Garbage Collection
- gb.garbageCollectionDescription = The garbage collector will pack loose objects pushed from clients and will remove unreferenced objects from the repository.
- gb.commitMessageRendererDescription = Commit messages can be displayed as plaintext or as rendered markup.
- gb.preferences = preferences
- gb.accountPreferences = Account Preferences
- gb.accountPreferencesDescription = Specify your account preferences
- gb.languagePreference = Language Preference
- gb.languagePreferenceDescription = Select your preferred translation for Gitblit
- gb.emailMeOnMyTicketChanges = Email me on my ticket changes
- gb.emailMeOnMyTicketChangesDescription = Send me an email notification for changes that I make to a ticket
- gb.displayNameDescription = The preferred name for display
- gb.emailAddressDescription = The primary email address for receiving notifications
- gb.sshKeys = SSH Keys
- gb.sshKeysDescription = SSH public key authentication is a secure alternative to password authentication
- gb.addSshKey = Add SSH Key
- gb.key = Key
- gb.comment = Comment
- gb.sshKeyCommentDescription = Enter an optional comment. If blank, the comment will be extracted from the key data.
- gb.permission = Permission
- gb.sshKeyPermissionDescription = Specify the access permission for the SSH key
- gb.transportPreference = Transport Preference
- gb.transportPreferenceDescription = Set the transport that you prefer to use for cloning
- gb.priority = priority
- gb.severity = severity
- gb.sortHighestPriority = highest priority
- gb.sortLowestPriority = lowest priority
- gb.sortHighestSeverity = highest severity
- gb.sortLowestSeverity = lowest severity
- gb.missingIntegrationBranchMore = The target integration branch does not exist in the repository!
- gb.diffDeletedFileSkipped = (deleted)
- gb.diffFileDiffTooLarge = Diff too large
- gb.diffNewFile = New file
- gb.diffDeletedFile = File was deleted
- gb.diffRenamedFile = File was renamed from {0}
- gb.diffCopiedFile = File was copied from {0}
- gb.diffTruncated = Diff truncated after the above file
- gb.opacityAdjust = Adjust opacity
- gb.blinkComparator = Blink comparator
- gb.imgdiffSubtract = Subtract (black = identical)
- gb.deleteRepositoryHeader = Delete Repository
- gb.deleteRepositoryDescription = Deleted repositories will be unrecoverable.
- gb.show_whitespace = show whitespace
- gb.ignore_whitespace = ignore whitespace
- gb.allRepositories = All Repositories
- gb.oid = object id
- gb.filestore = filestore
- gb.filestoreStats = Filestore contains {0} files with a total size of {1}. ({2} remaining)
- gb.statusChangedOn = status changed on
- gb.statusChangedBy = status changed by
- gb.filestoreHelp = How to use the Filestore?
- gb.editFile = edit file
- gb.continueEditing = Continue Editing
- gb.commitChanges = Commit Changes
- gb.fileNotMergeable = Unable to commit {0}. This file can not be automatically merged.
- gb.fileCommitted = Successfully committed {0}.
- gb.deletePatchset = Delete Patchset {0}
- gb.deletePatchsetSuccess = Deleted Patchset {0}.
- gb.deletePatchsetFailure = Error deleting Patchset {0}.
- gb.referencedByCommit = Referenced by commit.
- gb.referencedByTicket = Referenced by ticket.
- gb.emailClientCertificateSubject = Your Gitblit client certificate for {0}
|