-
-
Notifications
You must be signed in to change notification settings - Fork 2.9k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Timeslider: What's really broken #1217
Comments
Using firefox 17 all tests pass on a pad with 3 revisions |
Using firefox 17 all tests pass on a pad with 30 revisions |
Using firefox 17 tests 1, 2, 3 and 4 fail on a pad with 100 revisions. |
So TLDR any pad w/ > 100 revisions does not show changes in timeslider? |
FYI I have a pad with 7899 versions and the timeslider works okay, it's just a bit slow if I go back a long time in it's history. It's still a serious bug though, we need to get to the bottom of it even if it's just a case of showing a "loading" modal when we dont have enough data available to the client |
Some positive feedback: The present version commit 5eb09f9 (Mon Jan 14 14:26:30 2013 -0800) appears to work much better:
because quick timeslider pin moves can still lead to a server script crash, which just happened on my test installation with an old and bigger pad. |
A PR to re-enable TS tests #1476 |
As far as I understand this, if you are on point 10000 and click on point 50 it creates a changeset from 10000 to 50. This is bad. What we want is some way of doing a changeset from 0 to 50, 1000 to 1050 etc.. This would be a lot quicker and provide a much smoother process. Ideally what we will do is provide the users offline Storage or so with cached copies every 1000 revs or so. We could serve this when the user is on the pad. A very simple fix that would get us started is to provide content at Rev:[0-10] to the browser so when the play button is hit the content is available. Overall though I think the way the timeslider is provided is kinda broken. We don't provide historical search or an ability to see changes based on contributions Vs Time. Revisions are not necessarily humanly conceivable concepts compared to time. Also there has been various discussions about making the timeslider a "plugin", while I'm not a fan of that I think it's worth considering so we can maintain it as a completely separate entity. |
AFAIK it works differently. On load it starts pulling changesets from last to first revision using specified granularity (always equals to 1). For each changeset it creates forward (changeset as is) and backward (inversed changeset) version. If you want to go from head (rev50) to rev20 (i'll use smaller numbers for simplicity), it will apply backward changesets 49..20 to the head. Going forward, as you move slider back and forth it will apply forward or backward transform to the current state one by one. Timeslider stuck if you move slider too far where no changests are available yet, until they gets loaded (because loader works sequentially). You don't need to have separate storage, changesets storage already have full text each 100 revisions. To move quicker on the timeline, you can load nearest base revision, then only small set of transformations to move from base to selected position. |
RE Storage I mean on the client so the request doesn't need to be made to the server unless the data isn't available. |
I think you are correct on behavior btw, @Pita might want to share some thoughts here. |
I think you'll fill client's storage pretty quick with heavy usage :) Timeslider is a feature that is used very rarely, it should be ok to just optimize prefetcher so it will jump to the requested position rather than waiting until it is available. |
@dmitryuv agreed |
+1 on making it a separate plugin. We're not entirely comfortable with the load it puts on DB servers and have no real use for it anyway. If we could disable it, that'd be a big comforter for us. |
Using current git release (as per https://github.com/ether/etherpad-lite#installation ) I also have an empty slider window ;( I especially want to go to "marked" revisions, which I can't seem to view :( Do I have to "upgrade" to beta/dev/testing version to have this fixed? |
@hevisko on latest master it should be fine, try create a new pad and hit the timeslider button. |
Nope, same problem ;( On 7/14/13, John McLear notifications@github.com wrote:
|
hrm |
Try opening your browser's js console and look for errors. |
I am also seeing this issue. Slider is completely broken, I'm not sure since how many git updates ago since I wasn't personally using it. I'm on branch "develop", is that the right one to be on? Tried the JS console of my firefox, but that just caused CPU to max out for a few minutes and not much else .. but before that didn't see any errors, I just have a blank space below the slider (actually below the "version XX saved on XX" and so forth, roughly translated from German) |
I suspect that installation had a add-on that broke it. New installation it On Tue, Aug 20, 2013 at 11:31 PM, Michael Hellwig
|
Ah. That was a good trigger-word! |
Note that while the tables plugin might break it completely, there is still a more subtle breakage that happens sometimes under not quite clear conditions (at least with me, running cb3ab51). Most of our pads work fine, but one of the larger ones at 4656 revisions is exhibiting the behaviour described by @Wikinaut. In the console:
|
Hopefully @marcelklehr will get some time to spend on finishing off his work on #2070 which is nearly there! |
Please verify these four tests on your instance:
tests
Make sure you're running the latest version on develop branch.
Create a new pad and make some changes (aim for a fixed number of revisions)
Please refresh the page after each test and wait a bit allowing the timeslider to load all necessary things.
The text was updated successfully, but these errors were encountered: