On 21.06.2011 00:39, Vivian Meazza wrote:
> The bug which was stopping the built-in download running here was trivial -
> once we found it: a space in a directory name. Replaced with an underscore
> and it worked right out of the tin.
The white-space issue is fixed for the new library now. It only applied 
to external svn. The same problem persists for original terrasync(.exe) 
- it'll be fixed there once the utility is adapted to use the library 
(after the release). Same is true for the "trailing '/' issue". Fixed 
for the library now, persisting for terrasync(.exe) for now.

> Not quite - only the external mode was
> available. That turned out to be caused by a non-updated config.h file.
> Thanks to Fred for his help and guidance to solve that one.
Indeed, thanks to Fred. It did work nicely for automake. I'm sorry that 
there were issues with the MSVC9 project (or cmake). But I'm depending 
on others helping me out here. And I truly hope we can have a common 
build system only one day - cmake maybe.

> In doing this I noticed that both the built in and external variants seem to
> be functionally similar. I can't even work out how or why the external
> variant works - but it does. FG finds, starts, and stops the external SVN
> program. Either ThostenB has been very clever, or it's just serendipity
> here. I hope it's the former.
The code relies on finding "svn" on the system path. Same as 
terrasync(.exe) did - remember it's (almost) the same code. The latest 
update (yesterday) has an option to configure a full path to svn(.exe), 
which resolves the issue with systems where svn(.exe) isn't on the 
system path. Again, that's not available yet for the terrasyn(.exe) 
utility - it will be later (see above). And of course, the 
svn-library/svn-command-line options are functionally similar.

> 4. It is handy to be able to switch off/on scenery download at runtime, but
> here you only get about 5 of the 10 fps back. I see that once started the
> svn program remains loaded: this might be the cause.
I don't see "svn" processes sticking. If a "svn" process is still 
present, then subversion is still active. The call to external svn is 
blocking - it's impossible that a svn process sticks when you've 
successfully disabled svn support (see status in GUI). You'll notice 
that hitting "Apply"/"OK" buttons briefly block the GUI when you disable 
terrasync: they block since the code waits for the final (blocking) svn 
operation to return/abort.
And I can guarantee that there is no thread or anything running once 
terrasync is disabled. So, if you see any fps difference and terrasync 
is disabled, then that difference isn't caused by terrasync/svn.

> 5. The automatic refresh works well. There is an occasional grey-out.
> Disconcerting at first, but actually not a problem. This is a major
> advantage over Terrasync
Yesterday, I have limited that feature for the current release to only 
affect cases where ocean tiles (missing scenery) are replaced by actual 
scenery. It removes the distracting effect for normal tiles, until we 
can handle the refresh smoothly (like when they are out of sight). It 
remains an advantage when missing scenery is replaced by actual data: 
better to have a brief gray-out and then see the tile with the 
destination airport, than to keep seeing a patch of ocean/missing scenery.

> 5. To use the built-in option requires 2 additional and quite large
> dependencies which will need updating etc from time to time. For those of us
> that build FG this is a bit of a pain.
It's absolutely the same dependency that terrasync(.exe) has. If you 
haven't used/weren't interested in terrasync(.exe) so far - don't bother 
about the new feature. If you have used it, then FG can now be built 
with the same dependencies like terrasync(.exe) was. Again, nothing 
really changes.
cmake/automake will make sure that the svn-library dependency is 
automatically disabled when the library isn't present (again, sorry, if 
you're using a fixed MSVC9 project - hopefully cmake will help you soon).

Those running pre-built Windows/Mac binaries will be happy about using 
the svn-library (no separate "svn" utility to worry about) - especially 
since a "svn" command-line utility isn't common for most normal Win/Mac 
users/systems.
I guess most Linux distros have a "svn" utility pre-installed by 
default. And those building FG themselves (again, many Linux users I 
guess) have the option to use external svn.

> 6. Both the internal and external variants seem to be using the external
> svn.exe.
No way. Built-in svn uses the library and doesn't depend on any external 
svn(.exe). If you saw svn(.exe) being called, then built-in support was 
disabled (either since the feature wasn't compiled into FG or since the 
"use-built-in-svn" property was "false").
To make such things more obvious, there's a new status message when svn 
starts now: it'll tell whether internal or external support is 
selected/used. Pull yesterday's simgear.

> Do we require Windows users to have
> installed svn? I have - and that seems to be what is being used.
Of course not. See above.

> 7. The external variant would seem to meet Csaba's design ideal, without any
> apparent drawback. Except from the fact that, AFAIKS, apart from the menu
> item, both the external and internal variants are the same. Perhaps that's
> not the case for Linux builds. Or perhaps I'm wrong in my assessment. If the
> 2 builds are in fact different perhaps the build variant internal/external
> could be made conditional.

> Summary. We seem to have ended up with 3 overlapping systems, all with
> advantages and disadvantages. Would it be possible to combine them? It
> certainly would not seem sensible to maintain all 3.
I don't see 3 systems. We have _one_ terrasync-library.

It can use svn-library support, removing the dependency to external 
command-line utilities (svn.exe). Using the svn-library provides better 
control: we can check error messages and evaluate the actual change log 
(i.e. get information about what files/tiles were truly updated). For 
example, with yesterday's update, I fixed the issue that errors were 
reported for ocean scenery areas, since the svn server doesn't have data 
for these (again, that's only fixed for the new library, will be 
available for terrasync.exe later).

Alternatively, the terrasync-library can use an external "svn" 
command-line utility which has disadvantages though (no error or status 
information, and a dependency to an external utility).

The _one_ terrasync-library can be used in multiple places. And that's 
why we have simgear libraries. There will be no (more) code duplication 
when terrasync(.exe) is changed to use the same library. And only about 
200 lines of code remain in the original utility (for command-line and 
UDP processing) - trivial to maintain.

There are advantages for both: terrasync(.exe) and FG-builtin support, 
we've had that in last week's discussion already. Using a common library 
ensures we only need to maintain _one_ set of sources. Integration is 
almost trivial. I don't see a need to trigger a "let's decide now and 
drop one of them" discussion. And what would you like to drop? The 200 
lines of remaining terrasync? Or the 100 lines of FG integration code?

If we're serious about reducing maintenance: let's start with aircraft. 
Why does every Airbus/Boeing/... aircraft type come with a complete copy 
of all major Airbus/Boeing/... systems? Many, many files in fgdata are 
identical copies. There's a lot of potential of improvement.

cheers,
Thorsten

------------------------------------------------------------------------------
EditLive Enterprise is the world's most technically advanced content
authoring tool. Experience the power of Track Changes, Inline Image
Editing and ensure content is compliant with Accessibility Checking.
http://p.sf.net/sfu/ephox-dev2dev
_______________________________________________
Flightgear-devel mailing list
Flightgear-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/flightgear-devel

Reply via email to