relative paths in environments (or: cross-platform environments)

0 views
Skip to first unread message

Holger Stratmann

unread,
Apr 6, 2008, 8:59:08 AM4/6/08
to trac...@googlegroups.com
Hello everybody,

I have just installed Trac for the very first time and after a few
initial problems, it worked quite fine :-) Thanks everybody! :-D

I just have one little "issue" that would probably be quite easy to fix
and the fix would also have many positive side effects:
I am currently dual-booting my machine between Windows and Linux and
have all my applications access shared data and shared configuration
whenever possible... That's why I "have a problem" with hardcoded
absolute paths in configuration files. I would just love (optional)
relative paths whereever possible.

I have so far only stumbled across two options with absolute paths:
inherit.file
trac.repository_dir
(and probably also trac.authz_module_name)

This keeps me from using the same environments in Windows and Linux
(without "messing around" with lots of symlinks which in turn keeps me
from storing my trac environments on my shared (NTFS-) data partition).
QUESTION: Is there anything else that prevents this?

I do realize that a dual-booting server is a rare situation and probably
does not affect many people.
However, being a software developer myself, I see clear advantages:
With relative paths, my "environment container" (TracEnvParentDir) could
be self-contained and I could move it to a different location without
changing any settings within... This would be quite good for backups,
but also for some experiments and for configuration changes (data
mounted in a different location).

Suggestion:
Path specifications in an environment can be relative to the
environments main folder, e.g.
[inherit]
file = ../group1.ini
[trac]
repository_dir=../../../subversion/reponame/projectname

In both Windows and Linux, it is quite easy to distinguish between
absolute and relative paths, so this could easily be autodetected and
would require no further flags...
On Windows, "/dir" should be a directory on the same drive as the
environment.


IF they have multiple projects, I really think most people use a setup
where they use TracEnvParentDir and SVNParentPath (*). This could help.
I really don't see any disadvantages and also think the change should be
a small one because the paths could be "translated" once when reading
the environment config without affecting other code...

Unfortunately, I don't know a thing about Python, so I cannot do more
about this :-(

What does everybody think? Can I create a ticket? (milestone tbd) ;-)

Regards,

Holger

(*) P.S.: You require local svn repositories. In this case, I think it
might also make sense to allow this:
repository_parent=../../../subversion (specified in an inherited
configuration)
repository_dir=reponame/projectname
? :-D

Matt Good

unread,
Apr 7, 2008, 11:45:43 AM4/7/08
to Trac Development
This was already implemented:
http://trac.edgewall.org/ticket/4472
Reply all
Reply to author
Forward
0 new messages