Page MenuHomePhabricator

Talk pages of subpages are not moved if the top-level page has no talk page
Closed, ResolvedPublic

Description

Author: mike.lifeguard+bugs

Description:
"One" has been moved to "One/test"

  • The page One/test has been moved to One/test/test.
  • The page One/two has been moved to One/test/two.

This did not move "Talk:One/two" ("One" itself had no talk page, so there wasn't the option to move talk pages too). But there must be a check for talk pages of all subpages and there must be the option to move them too.

Perhaps have a checkbox which appears when you check "move subpages too" that is "move talk pages of subpages too"

Alternatively, Make it a single "move all subpages and their talk pages" checkbox.

Alternatively, check for talk pages on the subpages when someone goes to move a page and all subpages. If those subpages have talk pages, then ask whether to move them too. This might get ugly if there is deleting to do too.

When the top-level page has a talk page there is no problem as you have the option to move the talk page, and when you check off "subpages too" it moves the subpages' talk pages.


Version: 1.13.x
Severity: normal

Details

Reference
bz14369

Event Timeline

bzimport raised the priority of this task from to Low.Nov 21 2014, 10:12 PM
bzimport set Reference to bz14369.
bzimport added a subscriber: Unknown Object (MLST).

ayg wrote:

Confusing situation. Not clear what the best way to do this is.

mike.lifeguard+bugs wrote:

Generalizing the title of the bug, as there is an additional problem.

If moving Page along with subpages, when Page/Subpage doesn't exist, any subpages of Page/Subpage like Page/Subpage/Subsubpage which /do/ exist are missed.

The problem here is that all pages listed in Special:PrefixIndex/Page (and Special:PrefixIndex/Talk:Page when appropriate) need to be moved. There is likely a logic problem in finding the pages which should be moved. b:en:User:Darklama has suggested that there may be a check for a page's existence, and if it doesn't exist, then it stops and moves all pages found already. This would miss talk pages and subpages under the circumstances described, I think.

ayg wrote:

(In reply to comment #2)

Generalizing the title of the bug, as there is an additional problem.

Please open additional bugs for separate issues. The problem you describe has a clear solution and should be fixable independently of this one.

If moving Page along with subpages, when Page/Subpage doesn't exist, any
subpages of Page/Subpage like Page/Subpage/Subsubpage which /do/ exist are
missed.

I can't reproduce this. It works correctly for me. When you open a new bug, please give the exact lists of pages existing/moved, and a link to the relevant logs if available.

mike.lifeguard+bugs wrote:

See bug 14575 then; I thought it was a different manifestation of the same problem.

Component: Page editing -> General/Unknown.

mike.lifeguard+bugs wrote:

(In reply to comment #1)

Confusing situation. Not clear what the best way to do this is.

Is the situation I describe unclear?

Right now, you can workaround by creating the talk page so the talk subpages get recognized and moved. (and then maybe delete it after) But of course, as a workaround, it means things are still not right.

ayg wrote:

The problem is it's not clear to me what interface to provide to get around the problem.

Provide a "move talk page" checkbox if any subpages have talk pages? Possible, but weird.

Make "move subpages" always move talk pages? That removes functionality, although admittedly I don't know why you would want to move subpages without their talk pages.

Have separate checkboxes for "move talk page" and "move talk pages of subpages"? Checkbox spam, that's *too* flexible.

Maybe the best way would be that if the current page has no talk pages but some subpages do have talk pages, change the "move talk page" option into "move talk pages of subpages (if subpages are moved)". Put it below the "move subpages" option and have it grayed out unless that's selected. That would be a reasonable way to fix it.

mike.lifeguard+bugs wrote:

(In reply to comment #7)

The problem is it's not clear to me what interface to provide to get around the
problem.

Provide a "move talk page" checkbox if any subpages have talk pages? Possible,
but weird.

Make "move subpages" always move talk pages? That removes functionality,
although admittedly I don't know why you would want to move subpages without
their talk pages.

Yes, that's probably fine. I can't think of any use case for leaving the talk pages behind.

Have separate checkboxes for "move talk page" and "move talk pages of
subpages"? Checkbox spam, that's *too* flexible.

Maybe the best way would be that if the current page has no talk pages but some
subpages do have talk pages, change the "move talk page" option into "move talk
pages of subpages (if subpages are moved)". Put it below the "move subpages"
option and have it grayed out unless that's selected. That would be a
reasonable way to fix it.

That's be the best possible solution, yes. However, doing the lookup for the talk page of every subpage might be expensive. Though I guess we already do a lookup for subpages. I guess that's a question for someone else to figure out.

So, either of those would be totally fine, I think.

ayg wrote:

(In reply to comment #8)

That's be the best possible solution, yes. However, doing the lookup for the
talk page of every subpage might be expensive.

No, no more expensive than checking whether the subpages themselves exist. Same query, just in the talk namespace instead of the non-talk one. Searches for pages in a given namespace with a given title prefix are very fast, about as fast (if limited to one result) as looking up a title by its name directly.

(In reply to comment #7)

The problem is it's not clear to me what interface to provide to get around the
problem.

Provide a "move talk page" checkbox if any subpages have talk pages? Possible,
but weird.

I'm not sure why you think this is weird. Couldn't you just genericize the text a bit? E.g., "move associated talk pages", which safely applies to 0 or more talk pages.