PDA

View Full Version : original document polluted after sync


mlwang
05-11-2011, 09:42 PM
When storing (not linking) a local web page (a .html file) in UR, the original file would be "polluted" (data added at the top) if the stored document is edited internally, and then sync with the original.

Exact steps to re-produce:

1. prepare a test .html file. I first ran into this issue with several real-world .html files. To make sure there's nothing peculiar with the files, I finally tested with a minimalist hello.html file called with just one line of text (hello world!). The file is included in the uploaded hello.zip (renamed as hello_original.html to distinguish with the corrupted one).

2. Load the file in Firefox 4 (screenshot ur1.png in the zip).

3. drag and drop the file into UR.

4. Select the document in UR, and press Ctrl+M to make it stored instead of linked.

5. press Ctrl+Shift+0 to edit the page, and make some change. In my test, I changed the color of the text into red. (screenshot ur2.png in the zip).

6. press Ctrl+S to save the page, and Ctrl+F5 to sync with the original.

7. Go back to Firefox, and press F5 to reload hello.html. Some odd symbols and some text are added to the top of the page (screenshot below).

The corrupted hello.html is also included in the zip (as hello_aftersync.html).

I've tried this several times in a newly created database, on two different machines. My desktop is on Win7 x64 SP1, while my notebook is running Win7 x86 SP1. The notebook is using the trial version of UR.

kinook
05-12-2011, 10:19 AM
When storing a web page internally, it is stored in a custom format that includes ancillary files (stylesheets, images, etc.) and other information. Don't sync after editing the stored page internally.

mlwang
05-12-2011, 11:28 AM
When storing a web page internally, it is stored in a custom format that includes ancillary files (stylesheets, images, etc.) and other information. Don't sync after editing the stored page internally.
Ah, so, but isn't it true that a linked local file is always in sync (without having to use Ctrl+F5 at all)? At least it seems so in my tests. If I drag n' drop a .html file into UR without storing it, whatever changes (making the text red, e.g.) I make internally are automatically done on the external file itself. This makes sense to me as the changes have to be applied somewhere, and that somewhere has to be the original file since the file isn't stored internally.

Likewise, whatever I do to the original file (with an editor, e.g.), UR would update it after refreshing (F5). What is synchronization for if it's not for stored contents?

In addition, the Help file seems to suggest synchronization is for stored contents:
If a valid URL is specified, the information for the document in Ultra Recall can be Synchronized with this external document or folder (including the actual file if the contents are stored).

Sorry, I guess I'm confused about how synchronization works. I've gone over the Help again, and still not getting it. Could you please explain in greater detail? Thanks.

kinook
05-12-2011, 11:36 AM
Synchronization in UR is meant primarily as a way to keep UR's view of a folder in sync with an external folder's contents (typically, and by default, all synced documents are linked, not stored, in UR). For an individual item, syncing of a stored document will sync the contents with the external file, but internal editing of a stored web page and then syncing will result in the external file being synced to match what is stored internally by UR (which, by design, is a custom format that includes the page + any files comprising it). Web pages are unique, since they often have stylesheets, images, etc., associated with them. Other document types are stored in their native format.

mlwang
05-13-2011, 04:44 AM
OK, understood. I have a large reference database consisting mainly of text-only .html files, and I was pondering how best to organize them in UR. As I couldn't make up my mind about which way to go: linking them or storing them in UR, I thought I would dodge the issue and used "store and sync" for the moment.

Anyway, thanks for the explanation.