Menu

#183 source files don't sync in external projects

workingwiki
open
None
5
2013-05-07
2012-06-01
Lee Worden
No

I thought this would have been documented here long ago. WW isn't smart enough to sync source files in prerequisite projects that are on other wikis. It doesn't do interwiki interactions, just hopes the project directory is already there in the project engine. This is inconsistent because within the wiki it makes sure your prerequisite projects are synced before doing make, export, etc.

Related

Bugs: #613

Discussion

  • Lee Worden

    Lee Worden - 2012-06-01

    There are probably two main ways to fix this - push from WW, and pull from PE.

    Pull is how PE handles all non-wiki projects, i.e. projects stored in svn, git, etc.: it receives a request for a sync operation, deduces the repository's location from its URI, and executes an "svn update" or "git pull" command to pull in the up-to-date source file contents. Projects stored in wikis are the exception: PE requires the source file contents to be bundled into the request for the sync operation. If PE and WW were extended to allow PE to pull source files from their wikis, it would then be able to pull them from wikis other than the one sending the request.

    The problem could probably also be solved within the current push structure: this would require the requesting wiki to retrieve and push the external source files' contents along with its own when making the request; or to somehow ask the other wiki to push them to PE itself. (The latter would work for make operations, but maybe not for export-source-files, which needs at least the names of the source files all in the one request.)

    None of these seem all that hard to implement. Providing a pull interface in WW would overlap partially with the goal of creating a "git ww" framework. (And actually, allowing a wiki to get project data from another wiki would be pretty much the same code as allowing PE to get it.) Either approach would require some care around access control: how would we regulate which wikis and/or project engines are allowed to access other wikis' project data? (Should we consider some weird engineering where the USER gets the data from the various wikis, so that they only provide it if the user has access?)

     

Anonymous
Anonymous

Add attachments
Cancel