Commit Graph

146 Commits

Author SHA1 Message Date
Matías Halles
5fc3a987de Mercurial log template and parseLog pattern modification.
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).
2011-03-18 02:47:08 +01:00
Dmitry Dulepov
be39d72d3c Fix XML parsing exceptions when revisions with empty log messages are parsed.
This fixes issue 518; Dmitry is added to AUTHORS.
2011-03-18 02:33:54 +01:00
Thomas Keller
366d278182 Ignore "bad usage" error code in case git tag doesn't know of the --contains option. 2011-03-17 23:12:27 +01:00
Loïc d'Anterroches
5f008a14f5 ReFixed in an ugly way the non support of the git --contains option. 2011-03-17 09:28:43 +01:00
Loïc d'Anterroches
21a8c281ec Fixed in an ugly way the non support of the git --contains option. 2011-03-17 09:22:46 +01:00
Patrick Georgi
baa88412b9 Rewrite the diff parser and reduce the memory footprint.
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.
2011-03-16 23:50:41 +01:00
Thomas Keller
6fb9b72e22 Use git tag --contains REV for the IDF_Scm::inTags() implementation.
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.
2011-03-16 23:03:36 +01:00
William MARTIN
bb4fa7ca2f Fix issue 629 : Git commit view is missing the branch 2011-03-11 11:38:04 +01:00
Patrick Georgi
98f4eac82a Merge branch 'multiple-mails' into develop 2011-03-03 14:12:03 +01:00
William MARTIN
cc89a7e6f8 Add support of renamed file for IDF_Scm_Git::getchanges() 2011-02-25 11:10:10 +01:00
William MARTIN
f0ac256ff6 Implementation of IDF_Scm_Git::getChanges() 2011-02-24 15:21:51 +01:00
Patrick Georgi
38e6e4f8d3 Use all registered email addresses to map Scm users to IDF users. 2011-02-21 10:57:36 +01:00
Patrick Georgi
fbd1ebc294 Add the parent property to a subversion commit. 2011-01-30 00:05:09 +01:00
Thomas Keller
ddb05e68a3 Implement IDF_Scm::getExtraProperties 2011-01-24 15:11:12 +01:00
Loïc d'Anterroches
07c94b97f9 Merge branch 'feature-merge-history' into develop 2011-01-24 14:20:49 +01:00
Loïc d'Anterroches
116a7e34db Added the display of the commit parents in the changelog view.
The old commits will not have the parents displayed as already cached in the DB, but the new will get them.
2011-01-24 14:20:33 +01:00
Loïc d'Anterroches
207eb1322d Fixed to correctly store utf-8 string in the git cache. 2011-01-24 11:53:24 +01:00
Thomas Keller
296091e977 Fetch parent revisions for monotone commits as well. 2011-01-20 23:45:21 +01:00
Thomas Keller
77ba17eb61 Remove commented-out, unneeded manual includes 2011-01-20 23:40:21 +01:00
Loïc d'Anterroches
a489cb15b5 Added the display of the merge history in a commit view. 2011-01-20 10:25:41 +01:00
Thomas Keller
caac979263 Don't throw an exception in case we do not find a branch cert tacked on
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.
2011-01-17 11:57:39 +01:00
Loïc d'Anterroches
a7b62a30ff Correctly mark a Subversion repository as empty when at revision 0. 2011-01-09 13:47:07 +01:00
William MARTIN
439f1fefe2 Fix issue 588 : Redirect connected user to the anonymous url if they don't have register a SSH Key for GIT 2011-01-06 11:13:29 +01:00
Thomas Keller
dd05a58c8c Major configuration changes for SyncMonotone - we're now using a predefined
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).
2011-01-06 01:44:41 +01:00
Thomas Keller
39c29dbe10 Started on issue 544, extended commit details
* 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
2010-12-08 01:48:26 +01:00
Thomas Keller
874b5aa7e9 monotone changelog: do not add the parents of revisions which have not attached
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.
2010-12-02 23:23:38 +01:00
Thomas Keller
5b41fe3167 I promise I keep my fingers off git stuff now (a fix for issue 572) 2010-12-01 11:19:13 +01:00
Thomas Keller
1548d4184e Suppress a notice in case the git log line does not contain
a title (fixes issue 520)
2010-11-25 00:13:47 +01:00
Thomas Keller
abc8b8f4ab Another f'up - isValidRevision() is gone, replaced by validateRevision().
Unit tests would really, really help us here...
2010-11-17 23:18:06 +01:00
Thomas Keller
08ef485ca9 Return the proper validation value if "HEAD" is the to-be-validated revision
(fixes issue 568)
2010-11-17 19:10:51 +01:00
Thomas Keller
35e670a1ab The data structure is already a stdClass object, so add a property,
not a key (partially fixes issue 568)
2010-11-17 19:08:41 +01:00
Thomas Keller
70e8d12420 Output the branch a particular commit is on; this is easy for
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)
2010-11-17 01:53:17 +01:00
Thomas Keller
fe001abd26 Rework the way IDF's SCM interface provides downloadable snapshots.
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!
2010-10-30 21:52:40 +00:00
Thomas Keller
d25bc74d71 If no branch certificates are attached to a revision, we do not get
an empty array back from _getCerts(), but no entry for 'branch' at all.
2010-10-09 10:09:51 +00:00
Thomas Keller
a29a2a0fa4 The connection list view could never work with this messy backend. 2010-10-07 01:05:15 +00:00
Thomas Keller
97ea828532 Use a persistent cache through Pluf_Cache to speed up cert queries. 2010-10-04 15:42:21 +00:00
Thomas Keller
d539eaf64b - _getLastChangeFor(): drop that, no longer needed
- getTree(), getPathInfo(): use the new extended manifest format
  and save the calls to query file sizes from contents as well
  as the calls to determine the revision in which a file changed
  at last
2010-10-04 15:22:57 +00:00
Thomas Keller
90edbf0d8b Tweak the basicio parser so that it properly handles multi-value
lines with hashes (lines like symbol [hash] [hash] are still not
handled, but aren't outputted from any command either as of now).
2010-10-04 15:20:53 +00:00
Thomas Keller
0c575ccc74 If a symbol is printed without a value list at the very end of a
basic_io dump, we might access a non-existing character position.
This has been fixed and the string length calculation is now only
done once.
2010-10-03 22:23:08 +00:00
Thomas Keller
eebdc5ad12 IDF_Scm_Monotone::getCommit() separate the first line of a commit from the
rest and write the rest in full_message - just like we do it for log and
everything else. This is ugly, really ugly, because it assumes something
on the format of a commit message, which might not be true at all for
some project, but this is something Loic has to decide (see also issue 491
and issue 535)
2010-09-28 21:37:26 +00:00
Thomas Keller
29b8bf8a4e Some revisions might not carry a branch cert (yet), because they're
part of another branch whose certs haven't been pushed into the server
yet, so we need to skip these revisions while going back in time
for the changelog. The initial revision however must carry a branch
cert, otherwise we have nothing to "follow".
2010-09-15 08:46:10 +00:00
Thomas Keller
0f9f337e66 * configure whether or not to set remote client authentication for IDF -> remote_stdio
* hook into IDF_Project::preDelete, IDF_Key::postSave and IDF_Key::preDelete
* this is all not quite finished, but a big leap forward to completion
2010-09-13 00:53:24 +00:00
Thomas Keller
77cdbefe0c Added getter for the stdio instance 2010-09-13 00:50:16 +00:00
Thomas Keller
f68bba1292 Be more careful when parsing value lists - in case we process the last
line of a stanza which does _not_ close with a newline, we're accessing
a not existing string index.
2010-09-12 23:18:58 +00:00
Thomas Keller
37d0ccc728 partially resolve issue 492 (at least for the monotone tree view) 2010-09-11 00:28:31 +02:00
Thomas Keller
21cdf60c31 Introduce a more subtle concept of validity when it comes to revision
indentifiers in IDF - the SCM function isValidRevision has been replaced
by a validateRevision() method which returns one of three states,
valid, invalid or ambiguous.
The source view can then act accordingly and display disambiguate view
for the latter, so the user can select for which revision he actually
wants to execute the requested action. Also, invalid revisions now lead
to another separate view, telling the user that it is invalid / does
not exist and pointing him optionally to the help page where he can read
further how to access his repository to push the first changes into.
(partially resolves issue 525)
2010-09-01 13:13:52 +00:00
Thomas Keller
a384c60937 fix a PHP notice 2010-08-30 20:14:03 +00:00
Thomas Keller
b648e6f7a7 - now that we have to configure usher's configuration file anyway,
we can skip the explicit configuration of its host and admin
  password, as we can directly read that from the configuration file
  itself
- expand the SyncMonotone plugin a bit to where this actually becomes
  useful, i.e.  create an accompanying key for each created database
  and also add some initial database-specific configuration
- update the config docs in idf.php-dist to reflect the changes and
  add more details about the inner workings of the SyncMonotone plugin
2010-08-29 23:01:25 +00:00
Thomas Keller
194dcad0e3 Don't check if the main branch is empty, but let the view code later
handle the case where a selector doesn't resolve to at least one
revision gracefully (see also issue 525).
2010-08-29 22:59:12 +00:00
Thomas Keller
f2a9518b5c single quoted newlines of course will not work here... stupid me 2010-08-28 22:47:37 +00:00