Skip to content

Commit a4f8f5f

Browse files
author
Andrew Hodgkinson
committed
Import ROOL original Rails 1/2-era code
0 parents  commit a4f8f5f

File tree

212 files changed

+16696
-0
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

212 files changed

+16696
-0
lines changed

.gitignore

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
# See https://help.github.com/articles/ignoring-files for more about ignoring files.
2+
#
3+
# If you find yourself ignoring temporary files generated by your text editor
4+
# or operating system, you probably want to add a global ignore instead:
5+
# git config --global core.excludesfile '~/.gitignore_global'
6+
7+
# Ignore bundler config.
8+
/.bundle
9+
10+
# Ignore macOS Finder view configuration data.
11+
.DS_Store
12+
13+
# Ignore all environment files (except templates).
14+
/.env*
15+
!/.env*.erb
16+
17+
# Ignore all logfiles and tempfiles.
18+
/log/*
19+
/tmp/*
20+
!/log/.keep
21+
!/tmp/.keep
22+
23+
# Ignore pidfiles, but keep the directory.
24+
/tmp/pids/*
25+
!/tmp/pids/
26+
!/tmp/pids/.keep
27+
28+
# Ignore storage (uploaded files in development and any SQLite databases).
29+
/storage/*
30+
!/storage/.keep
31+
/tmp/storage/*
32+
!/tmp/storage/
33+
!/tmp/storage/.keep
34+
public/files/*
35+
36+
# Ignore master key for decrypting credentials and more.
37+
/config/master.key
38+
39+
# Ignore NPM output.
40+
package-lock.json
41+
node_modules/
42+

CHANGELOG

Lines changed: 135 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,135 @@
1+
** SVN **
2+
3+
4+
5+
6+
** 0.5.6 **
7+
8+
* Don’t select “completed” milestones for the “Add to milestone” dropdown when creating new ticket
9+
10+
* Added permissions for viewing milestones [jwa]
11+
12+
* Make ./script/repository_syncer use less memory by running GC manually
13+
14+
* Updated ActionSubversion to support the Subversion 1.3 API
15+
16+
17+
** 0.5.5 **
18+
19+
* Added a simple search mechanism for tickets and changesets
20+
21+
* Added next/prev links when showing a ticket
22+
23+
* Handle milestone.info.nil? nicely [Oliver Legg]
24+
25+
* Placed all admin related controller & views in /admin/
26+
27+
* ActionSubversion: Guard against non-canonical repository paths
28+
29+
* ActionSubversion: Fixed memory issues
30+
31+
* Added "meta" info about the current dir being browsed
32+
33+
* ActionSubversion: Added #get_node_entry for getting a single RepositoryNode object
34+
35+
* ActionSubversion: Adding Base::fs_root(rev) for getting the root object from a given revision
36+
37+
* Now accepting +rev+ params properly to get the file/path at the given revision, link to this revision when showing a changeset as well.
38+
39+
* Added so that it is possible to get a listing of all past revisions when viewing a file
40+
41+
* Make path_breadcrumbs not break path where multiple occurances of the same same occur [[email protected]]
42+
43+
* Make rss feeds work with urls like http://my.url:3455 [[email protected]]
44+
45+
* Show some "meta info" about the file we're viewing in the browser
46+
47+
* Encode email addresses in ticket authornames and make them clickable. [[email protected]]
48+
49+
* Create/edit admin users from admin UI [[email protected]]
50+
51+
* Updated to edge rails (0.14/1.0)
52+
53+
* Added db/default_content.rb as an attempt at an easy way to create initial content
54+
55+
* Dropping development_structure.*.sql in favor of schema.rb
56+
57+
* Bring various railsisms up to date (@params => params etc) [Lucas Carlson]
58+
59+
* ActionSubversion: Objectified repository node entries
60+
61+
* Added so that NULL values in ticket associations are not dependent on mysql behaviour [Samuel Kvarnbrink]
62+
63+
* Added PostgreSQL schema [Samuel Kvarnbrink]
64+
65+
* Handle mime-types not found in the ext->mimetype hash
66+
67+
* Attempt to avoid race conditions when syncing changesets
68+
69+
* Fixed so that we don't diff binary files when showing a changeset
70+
71+
* format_and_make_links for rss description as well
72+
73+
* Better support for multiple apps and mod_ruby [[email protected]]
74+
75+
* Escape some html in ticket listing and be able to use textile in tickets+comments
76+
77+
* Added migrations for easier updates of DB.
78+
79+
* Adding User roles and permissions [Dan Willemsen].
80+
81+
* Calling a model Version is a bad idea, renamed it to Release. Version causes all sorts of funny clashes with it being a reserved-ish word and all
82+
83+
* ActionSubversion: Fixed so that you can't diff a dir (eg. when setting svn props on a dir in a changeset)
84+
85+
* Upgraded misc. rails related files to 0.13
86+
87+
* Changed so that controller picks up if svn:mime-type prop was there and converts (using iconv) it to utf8 [[email protected]]
88+
89+
* Added snazzy icons for status of affected files in a changeset
90+
91+
* Updated Changeset.sync_changesets to reflect the changes below
92+
93+
* Added ./script/repository_syncer for syncing the repos from the commandline.
94+
Run ./script/repository_syncer --truncate-db --reload-db to update table schemes and re-sync
95+
96+
* ActionSubversion: Added so that copied & moved files/dirs gets detected properly.
97+
Also, only copied_nodes, moved_nodes, deleted_nodes, updated_nodes & added_nodes are available as methods to get both files and dirs
98+
99+
* Removed due dates in milestones (out of scope for collaboa)
100+
101+
* Improved/fixed date/time display in changesets
102+
103+
* Added sortable ticket tables
104+
105+
* README updated to reflect the fact that we need to manually execute the SQL for creating a new admin user [Jeff Rose]
106+
107+
* Updated .htaccess file [Jeff Rose]
108+
109+
* Fix AdminController to delete the milestone and not the version, when clicking "delete" on a milestone
110+
111+
* Make stylesheet links, image links, etc work properly in a non-vhost setup [[email protected]]
112+
113+
* Don't make render_diff helper go nuts when passed an empty udiff
114+
115+
* HTMLescape rescue_exception_in_public output
116+
117+
* Redirect to 'browse' action if no action (eg 'index') is given for RepositoryController
118+
119+
* Escape log message in repos browser
120+
121+
122+
** 0.5 **
123+
124+
* Milestones can be set as completed within the admin ui
125+
126+
* Added links to the ticket filter (open/closed with milestone) from the milestone view
127+
128+
* Renamed collaboa-conf.yml to repository.yml
129+
130+
* changeset logs, ticket details and ticket comments will now link to a changeset
131+
or ticket if ticket #num or changeset #num (or changeset num, ticket num) is used
132+
in the text. Like this:
133+
"blabla fixed in changeset #47"
134+
#=> blabla duplicate of <a href="example.com/tickets/42">ticket #42</a>
135+

INSTALL

Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
The Subversion Ruby bindings
2+
============================
3+
4+
The bindings for Ruby is available from Subversion 1.2 and up. Installation
5+
is fairly straight forwards, as long as you meet the requirements of the svn bindings
6+
(see the INSTALL/NOTES in $SVN_SRC_DIR/subversion/bindings/swig).
7+
8+
Be sure to note the requirements for the SWIG version in that file!
9+
10+
The correct way to install the Ruby bindings once you've configured, maked and
11+
installed subversion is (unfortunately this doesn't seem to be covered in the
12+
current svn docs):
13+
14+
$ make swig-rb
15+
$ make check-swig-rb (optional, but you probably want to run these tests)
16+
$ make install-swig-rb (as root)
17+
18+
Configuring Collaboa
19+
====================
20+
21+
1. Copy (or rename) database.yml.sample to database.yml and set up the credentials and
22+
other database details you wish
23+
24+
2. Copy (or rename) repository.yml.sample to repository.yml and point it to the Subversion
25+
repository you wish to use for your environment (you probably want "production")
26+
27+
3. Run the following
28+
$ RAILS_ENV="production" rake db_schema_import
29+
30+
4. Run the following:
31+
$ RAILS_ENV="production" ruby db/default_content.rb
32+
to create the minimal default content Collaboa needs to start with.
33+
34+
5. Then, before you load up your Collaboa instance in your browser, you should run the following:
35+
$ RAILS_ENV="production" ./script/repository_syncer
36+
It will default to using your production settings, for options etc, run it with the --help flag
37+
38+
6. IMPORTANT! Change your admin password by logging into your collaboa install with:
39+
Username: admin
40+
Password: admin
41+
And go to Admin > Users > edit "admin"
42+
43+
...to sync the database with your repository. Collaboa will automatically sync with your
44+
repository when it detects a change, but for the first run you'd want to run the rake
45+
task to avoid timeouts etc in case your repository is fairly big.
46+
47+
6. You can run pretty much any web server you wish (only tested with
48+
Lighttpd/Apache/Webrick though). If you just wanted to get started right
49+
away you can run "./script/server" and direct your browser at
50+
the url listed

MIT-LICENSE

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
Copyright (c) 2005 Johan Sørensen
2+
3+
Permission is hereby granted, free of charge, to any person obtaining
4+
a copy of this software and associated documentation files (the
5+
"Software"), to deal in the Software without restriction, including
6+
without limitation the rights to use, copy, modify, merge, publish,
7+
distribute, sublicense, and/or sell copies of the Software, and to
8+
permit persons to whom the Software is furnished to do so, subject to
9+
the following conditions:
10+
11+
The above copyright notice and this permission notice shall be
12+
included in all copies or substantial portions of the Software.
13+
14+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
15+
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
16+
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
17+
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
18+
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
19+
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
20+
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
21+

README

Lines changed: 86 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,86 @@
1+
Welcome to Collaboa
2+
=======================
3+
4+
CONTENTS
5+
--------
6+
1. About
7+
2. Requirements
8+
3. Installation & Upgrading
9+
4. Running tests
10+
5. Authors
11+
6. Acknowledgments
12+
13+
14+
1. About
15+
--------
16+
17+
The goal of Collaboa is to be a collaborative tool for developers using Subversion.
18+
19+
Currently, only the following features are available:
20+
* Repository browsing
21+
* Changeset viewer
22+
* Issue tracking
23+
* Milestone management
24+
25+
Thanks to Rails, the underlying framework, it runs on a number of web servers
26+
supporting both FastCGI and plain CGI. Because of the speed improvements over plain
27+
CGI, FastCGI is the preferred environment to run it in. The developer is known to
28+
have a personal taste for "Lighttpd":http://lighttpd.net as a web server, but that
29+
shouldn't stop you from using anything else, like Apache.
30+
31+
Some of the features planned for future releases are:
32+
* Continuous integration of tests/builds
33+
34+
### A little background...
35+
36+
Colloboa has been heavily influenced by "Trac":http://projects.edgewall.com/trac/,
37+
which showed the world how nicely version and bug tracking could be integrated.
38+
Hopefully Colloboa still has a place in the world because of its different feature
39+
set (although it may not be quite there yet).
40+
41+
42+
You can find more info on http://collaboa.org along with official releases.
43+
If you want to report a bug or submit a patch (both greatly appreciated) you can
44+
visit the "Collaboa for Collaboa" at http://dev.collaboa.org
45+
46+
47+
2. Requirements
48+
---------------
49+
50+
Subversion 1.2.x with the Ruby SWIG bindings installed (see "Install" below)
51+
Rails 1.0+
52+
53+
54+
3. Install
55+
----------
56+
57+
Please see INSTALL & UPGRADE
58+
59+
60+
4. Running tests
61+
----------------
62+
The unit and functional tests expect the svn dump located in
63+
./lib/actionsubversion/test/fixtures/data_for_tests.svn to be loaded in the repository located
64+
at the path you've specified under "test" in the collaboa-config.yml. You can load it with the
65+
following commands (REPOS_PATH being where you want the test repos):
66+
$ svnadmin create REPOS_PATH
67+
$ cat ./lib/actionsubversion/test/fixtures/data_for_tests.svn | svnadmin load REPOS_PATH
68+
69+
5. Authors
70+
----------
71+
72+
Collaboa is maintained and developed by Johan Sørensen. You can find out more about him
73+
at http://johansorensen.com/ or read his blog at http://theexciter.com. You can also send
74+
an email to johan at johansorensen.com.
75+
76+
Contributions has been made by the following people:
77+
* Jean-Philippe Bougi
78+
79+
80+
6. Acknowledgments
81+
-------------------
82+
Collaboa contains a few shamefully lifted codesnippets from the Bugtrack application made by
83+
Kent Sibilev. Specifically things related to creating TicketChange logs. You can find out more
84+
about Kent's excellent bugtracker at http://rubyforge.org/projects/bugtrack
85+
86+

Rakefile

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
# Add your own tasks in files placed in lib/tasks ending in .rake,
2+
# for example lib/tasks/switchtower.rake, and they will automatically be available to Rake.
3+
4+
require(File.join(File.dirname(__FILE__), 'config', 'boot'))
5+
6+
require 'rake'
7+
require 'rake/testtask'
8+
require 'rake/rdoctask'
9+
10+
require 'tasks/rails'

TODO

Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
Legend:
2+
[ ] not done
3+
[*] done
4+
[+] in progess
5+
6+
### General
7+
[*] RSS! [DONE]
8+
[*] General Admin interfaces [DONE]
9+
[+] Refine the overall design
10+
[ ] Beef up the Admin interface
11+
[ ] User/login/roles mangement
12+
[ ] Or enforce uft8 (using iconv)
13+
[ ] Clean up html markup + css
14+
[ ] Add indexes on db
15+
[ ] Cache things
16+
[ ] Work out some neat ConfigManager thingie, so Repository functions won't be enabled if no svn bindings are installed
17+
[ ] Add some sort of project title to the above, that goes in rss feeds, <title> etc
18+
[ ] Cache RSS
19+
20+
### Repository browser
21+
[+] Create html/controller code for browsing at a specific revision
22+
[ ] check so that filesize is reasonable before sending it to the browser, error out if not
23+
[ ] Make more basic syntaxes for common filetypes
24+
[ ] Show revision and log info when viewing a file (+ diff with previous? + "back in time"?)
25+
26+
### Changeset browser/viewer
27+
[ ] show/download one single udiff for a changeset
28+
29+
## Tickets
30+
[*] Fix dodgy-ness when attempting to add changes to a ticket with empty values [DONE]
31+
[*] Attachments, both to initial tickets and followups [DONE]
32+
[*] Ability to sort by ticket #, date, status, severity etc (tablesort) [DONE]
33+
[ ] Post commit hooks for closing/reopening tickets etc
34+
[ ] Add ability to create & save a filter (and then /tickets/filter/1 for example)
35+
[ ] Add time estimation
36+
[ ] Decide on what markup and/or html to allow in comments/tickets
37+
[ ] Email subscriptions
38+
[ ] Move TicketChange.attachment to a seperate Attachment model
39+
[ ] Be able to assign a Ticket to a user.
40+
41+
## Search
42+
[ ] Search in changesets
43+
[ ] Search in tickets
44+
45+
### "Builder" (continous integration of builds)
46+
writeme

0 commit comments

Comments
 (0)