Oscar, Thanks for reporting this. Gitorious keeps a list of reserved names for projects and repositories (lib/gitorious/reservations.rb) - the names you're suggesting should be added there.
We have a bug tracker now at https://issues.gitorious.org/ - would you mind reporting this bug there? Cheers, - Marius On Sun, Jul 10, 2011 at 1:27 AM, oscar schneider <[email protected]>wrote: > Hi, > > I recently discoverd a problem with gitorious when I created a > repository called "users". > > This leads to gitorious creating the repository but when this is > completetd and I am redirected to repository's website I get this > error: > > Sorry, page not found > The page you were looking for does not exist. You may have mistyped, > or the page could be moved. > > I encountered this on a private installation but the same happens at > gitorious.org > > The same hold true for repository names such as "groups" and probably > all table names in the gitorious DB. Only a repository "repositories" > doesn't result in a "page not found" message, since > https://gitorious/projectname/repositories is already a reserved route > displaying all repos in that project. Nonetheless it is not possible > to edit the repository. > > Possible mitigation: Check repository names before creating them and > if they match any of the reserved words (table names, routes) and > notify the user that he/she should choose a different name for the > repository. Maybe projects are also affected, but I do not want to try > to create a project with a title like "users" because it already took > me quite some time to figure out how to clean up after creating only a > repository with that name. > > It is not possible to delete such repositories through the web > interface (well, besides deleting the entire project, which might not > be an option sometimes). > > I am not a huge rails pro in any way but I managed to delete the > repository via the rails console, but this is where my trouble > started, because then my dashboard could not be viewed since "users" > was in my favorites list, thus one of my favorites was now nil. > Therefore I got this error via mail: > > A ActionView::TemplateError occurred in site#index: > > undefined method `user' for nil:NilClass > On line #131 of app/views/site/dashboard.html.erb > > 128: </div> > 129: <ul class="with_icons"> > 130: <% @favorites.each do |favorite| %> > 131: <li class="<%= css_classes_for(favorite) -%>"> > 132: <%= link_to_watchable(favorite) -%> > 133: </li> > 134: <% end %> > > I managed to solve this by deleting the repo from my favorites list. > However it was also necessary to remove other references to that > repository. In my case, the repository was owned by a group/team, thus > trying to open the homepage of that team also resulted in a Page Not > Found. This results in an error like this: > > A NoMethodError occurred in groups#show: > > undefined method `project_id' for nil:NilClass > [RAILS_ROOT]/app/models/group.rb:85:in `all_related_project_ids' > > Here is a short howto for getting rid of the "evil" repository: > > 1. Login to your gitorious instance > 2. Switch user to the one owning gitorious, in my case git: sudo su > git > 3. Switch to the directory where the gitorious code is: git@gitorious: > cd ~/gitorious/current > 4. Start the rails console: RAILS_ENV=production /usr/local/bin/ > gitorious_ruby script/console > 5. evil = Repository.find_by_name "users" (note the repository id for > evil, you might need it later) > 6. evil.delete > 7. a = event.last > 8. a.delete > 9. g = Group.find_by_name "groupname" > 10. If the evil repository is the newest for that group: > g.committerships = g.committerships - [g.committerships[-1]] > 11. g.repository_ids = g.repository_ids - [ (repo id of evil > repository) ] > 12. g.save > 13. p = Project.find_by_title "affected_proj" > 14. p.repository_ids = g.repository_ids - [ (repo id of evil > repository) ] > 15. p.save > > This should be it. > > -- > To post to this group, send email to [email protected] > To unsubscribe from this group, send email to > [email protected] > -- Marius Mårnes Mathiesen Rubyist, Shortcut AS Tel.: (+47) 92 60 95 38. http://shortcut.no -- To post to this group, send email to [email protected] To unsubscribe from this group, send email to [email protected]
