of the command looked bogus: since each tag ref is prefixed by an iso date and
since commit 94da55d1 by hash, the whole string was of course sorted by this
date and later hash, but not the tag name. This should now make more sense.
- IssueUpdate.php: use dynamically set field validators for dynamically
created fields; let relation_type0 and relation_issue0 exist at any time;
check the validity of a user selection and combine the various input fields
if possible; do the database updates for links; change the "change" format
for labels to a more precise structure and no longer trust on a leading
dash for removed labels
- IssueCreate.php: change the validator calls and field names
- Issue.php (getGroupedRelatedIssues): make it possible to return only a
flat list of integers for easier processing
- 17AddIssueRelations.php: migrate the previous serialized "changes" format
for issue comments to the new, more structured format (up and down)
- js-autocomplete.html: add support for multiple input fields
- view.html: output relation changes and wrap the related issues stanzas into
paragraphs
- NEWS.mdtext: note the addition and the need for a specific version of Pluf
- tags and branches with spaces are now properly parsed (issue 663)
- use --style instead of --template option of hg to include much more
output for the log command; use that to query the parent revisions of
a revision (if any) and also to query the actual changes of a revision
- make the log parser much more robust towards changes in the "header"
of the log output
- be explicit and expect only ssh-dss or ssh-rsa keys
- allow any character (even line breaks and whitespace) in the optional comment,
but shrink all of them to simple spaces (fixes issue 679)
- test the newly uploaded key against existing keys only by the base key data,
not the fully uploaded string (that might contain a changed comment line or
the like) to avoid duplicates; also only check the keys of the user for
duplicates, not all existing keys in the forge (if for whatever reason two
user accounts share a key)
- actually query data for the incoming query
- exclude the current issue from being linked with itself
- allow multiple issues to be given in the second input field
- add the form fields to the ticket update view as well
- move "Binary section" into "Path section"
- make individual sections more prominent and therefor
easier to grasp / scan for
- fix the language and expand the explanations for a
couple of items
- remove the 'debug_scm' configuration variable
(it is used nowhere in the source and just confuses people)
- update the copyright
- remove the question mark from the default logo for simplification,
add a soft drop shadow to make the logo more visible on not so light
backgrounds
- display the project logo and the lock icon in the project list dropdown
- re-position the project title and display the lock icon (if needed)
on top of the main logo
The code now works best with uploaded logos of 32x32px^2; smaller logos
will be downsampled and repositioned on a best breed basis.
- add tests for getTree(), getChanges() and isCommitLarge()
- anonymize the test data somewhat
- return false instead of null for unknown revisions given to getChanges()
- test getRepositorySize() with a test file
- implement tests for inTags(), inBranches(), getFile(),
getCommit() and getExtraProperties()
- mark the static methods as untestable
- getPathInfo(), disambiguateRevision() and validateRevision() are done
- we no longer need to check / skip a format_version stanza for the extended
manifest (there is no such stanza outputted)
Main test infrastructure is there, still lots of functionality left
for testing. Fixed a possible bug in the SCM interface already:
Pluf_HTTP_Response_NotFound needs a request instance as ctor argument,
which we don't have at this point, therefor we just throw an exception.
- create an interface that describes the basic methods
- let the real stdio class implement this interface
- inject the stdio instance into IDF_Scm_Monotone and do not
create it in the constructor
- ensure in IDF_Scm_Monotone_ZipRender that we get the proper
constructor arguments
On a slighly unrelated note, make _getAuthOptions() in the stdio
implementation private.
Indefero's version is now noted in src/IDF/version.php;
just before a release is made, the '-dev' is removed and
after the release is made, the version should be increased and
'-dev' should be added back to denote that the development
for the next version started.
The revision identifier is automatically set when an archive
is created and is based on the revision that the archive creator
gave to git-archive(1). If people follow development, we try to
get the current deployed version with git-log(1) and if that
fails as well, the revision is determined to be 'unknown'.
Version and revision are then rendered as HTML meta tags in
the header of each template. (All this is done by the new
{appversion} tag.)
Added a template for getting a controlled log; in parseLog, changed the regular
expression to match the pattern used in the template (fixes issues 507 and 508).
The diff parser code was rewritten for clarity and speed and now handles
a couple of ugly cornercases, like SVN's property change output and single
change chunks, much better. Since the path parsing was unified as well,
the SCM interface gained a new method `getPathStripLevel()` which determines
how many path components need to be shoven off a file name for the SCM
to form a valid path in the workspace (similar to patch(1)'s --strip option).
Fixes issue 627. Automated tests follow.
This works similar to git branch --contains REV; additionally give the
revision id and not some possibly symbolic name to the inBranches()
call when we determine the branches a commit is in.
The additional filter token introduced 404's for bookmarked feeds;
now the old URLs are re-added and their actions forward the requests
to the new handlers.
Another small change removes a double assignment and puts the
"All Updates" link in the template on top to separate it clearly
from the other filters.
This commit closes issue 605.
- The previous translator mixed "Du" and "Sie", I stumbled upon
"Du" at first and decided to stick with that.
- The poedit extra headers have been removed; a proper plural
configuration has been added.
- Many strings have been misspelled and were thus fixed, though
there is still lots of work left.
elements inside headings) and also use a lower heading, h3 and not h1
for the subheadings.
Reduce the amount of code duplication with include's for each VCS.
private projects and we should also take care that the symlink that
enables it is dynamically created / removed when the private flag
changes for a project.
a revision from which we want to start our log from, but simply ignore
that and go over to the next revision. Note that this is also a bit
fragile and should probably be converted to plain mtn au log usage.
Add link previous and after to quickly jump to another issue.
Those links are pointing to issue with the same status (open/closed).
With little trick on url we can do the same thing for browse "my issue" and "my watchlist".
configuration tree as template for a new project and copy / symlink that on
project creation. To make this process a little more configurable, two new
configuration options, 'mtn_confdir' and 'mtn_confdir_extra', have been
added which allow the forge admin to adapt the directory structure and its
default hooks to his likings for all new projects. (More on that in
doc/syncmonotone.mdtext).
The 'mtn_remote_auth' configuration option was removed, because setting this
to false would have not worked for setups which did not allow write access
to remote automate commands for anonymous users and opening this would have
meant a huge security hole. Instead, for every project which is created a
corresponding client key is created as well which is used as authentication
in the IDF source frontend.
Finally the monolithic monotonerc file has been split up into individual,
easily configurable lua files which are linked / copied underknees hooks.d/
and which do not conflict with each other (for example by overwriting certain
main notification hooks).
* Scm.php: new SCM method "getChanges" which returns all available
change information grouped by type
* Monotone.php: implement getChanges via get_revision
* <other scms>: rename "changes" member for getCommit to "diff" which
matches better
* Source.php: query the commit's changes and set them in the template
* commit.html: render the changes, type-by-type. Link to the tree or
the individual diff if applicable
* styles.css: some initial style sheet work
Changes with respect to the original patch:
- use Gconf instead of separate table / data scheme
- better form validation for URLs and emails
- no htmlentity-encoded contents in the database (pluf automatically safe-encodes
stuff before it writes out contents into templates)
- add visual separators in the form views to have a distinct view of basic
(important) data and other data which are only displayed in the public profile
- give a hint about the maximum display size of 60x60 px^2 and use max-width and
max-height in the templates to avoid nasty distortions by the browser
- use target=_blank and rel=nofollow on the twitter and website links in the profile
- some whitespace / formatting / code style fixes
the branch certificates in question to the horizont, otherwise we end up going
up the whole history for some feature branch as soon as we hit the base branch
of a project.
IDF_FileUtil and change all occurrences accordingly
* cache /etc/mime.types (or whatever is configured) per request in a static
variable in IDF_FileUtil
* always link directly to the download of attached files in the issues view
and place an additional "view" link only for those attachments which we
recognize as text with our weak criteria (closes issue 575)
mercurial and monotone, but slightly harder till impossible to
do properly for git and svn. Please review and eventually adapt
the code to make it work better (partially fixes issue 450)
Instead of returning a command which gets executed and which should
pass through / stream its output data to the client, we're just
returning an instance of Pluf_HTTP_Response. This is needed, because
some SCMs, most noticable monotone, have no locally executable command
to provide a snapshot archive (and probably never will for our kind
of setup).
We therefor added a little BSD-licensed class "ZipArchive" which allows
the creation of pkzip-compatible archives on the fly by letting it eat
the file contents directly feed from the (remote) stdio instance.
Download performance is ok and lies between 15K/s and 110K/s, but at
least we do no longer block the browser while we pre-generate the zip
file server-side.
Thanks to Patrick Georgi for all his work!
this way additional hooks which need these notifications as well
do not override earlier hooks
* optionally include an additional hooks.lua file at the very end
in which custom hooks can be defined
* refactor out the common menu code from several base*.html classes into main-menu.html
and put the raw links into a unordered list (which makes it easier to create dynamic
menus as we cannot insert block items into inline items in strict mode)
* query the list of available projects on every request and set them for every template
in Middleware.php
* make the popup menu pretty
need of having to start the list with a space, here it was actually
needed code-wise. I rewrote the code so the space was not needed
and the documentation follows the actual behaviour.