Page MenuHomePhabricator

Moving pages should optionally move their subpages as well
Closed, ResolvedPublic

Description

Author: yonatanh

Description:
Moving Fo->Foo should also move Fo/Bar -> Foo/Bar.


Version: unspecified
Severity: enhancement

Details

Reference
bz9626

Event Timeline

bzimport raised the priority of this task from to Medium.Nov 21 2014, 9:41 PM
bzimport set Reference to bz9626.
bzimport added a subscriber: Unknown Object (MLST).

Or there should at least be a checkbox for that if such subpages are detected.

The number of subpages in the Talk: namespace on en seems to be growing. Its now quite common to have archives, todo lists, rating comments as sub pages. It would be very handy to be able to move all these, or at least some notification that the sub pages have been orphened.

aoleg wrote:

Yes, please implement this feature. It will be highly useful.

lcarsdata wrote:

(In reply to comment #3)

Yes, please implement this feature. It will be highly useful.

Can I remind you that these sort of comments are not productive, most features will get done when they get done regardless of how much support is expressed, and if you wish to express your vote the most polite way is to vote (since it is sometimes irritating to have the discussion interrupted and many users receive all mediazilla changes via e-mail).

Regardless of this, this might be difficult to implement because when pages are moved it uses a query that takes a long time (depending on how many revisions that page has) and this coupled with several pages may cause issues (such as database locks and server crashes).

ayg wrote:

Code for this feature already exists in SpecialRenameuser.php and should be fairly easy to adapt to this. There's no concern with pages with many revisions, because the revision table doesn't have to be updated on page moves (it uses pageid, not ns+title).

  • Bug 10523 has been marked as a duplicate of this bug. ***

robchur wrote:

*** Bug 10580 has been marked as a duplicate of this bug. ***

webmaster wrote:

(In reply to comment #5)

Code for this feature already exists in SpecialRenameuser.php and should be
fairly easy to adapt to this. There's no concern with pages with many
revisions, because the revision table doesn't have to be updated on page moves
(it uses pageid, not ns+title).

I would have never thought to look in SpecialRenameuser.php. ;)
Without looking yet, is the code you speak of to change 'who' is attributed for edits?

Does this code find 'all' sub-pages for a given page?
If so, regarding the above comment from Robert, is performance degredation still a potential issue if a page has many sub-pages?

Perhaps I should have search bugzilla for this kind of entry and mentioned this some time ago. I made a post to mediawiki-l already about it though.

I actually already have a working extension that does something similar to this.
I had a project "Wikia ACG" over on Wikia and the plan was to use a Subpage system to create a mini-wiki like structure on the top level wiki. So to ease moving of prefixes, I created an extension which adds another type of move, moveex.

It's sysop only by default, of course, this is because normally users are limited to only moving a few pages at a time, and allowing a user to use the special page to move something like 25 pages, when by default they are limited to only 2 and then need to wait, isn't a very good idea. (Especially when each one adds another row to the rc)

  • An extra tab "MovepageEx" to the action tabs, beside the move button, for sysops. Which leads to the proper MovepageEx page.
  • On [[Special:MovepageEx]] you are given a list with the page, the talkpage, the subpages, and the talkpage' subpages. Each has a checkbox which you can use to specify if you want it to move or not.

However, it's not a replacement for [[Special:Move]] for a few reasons.

  • Primarily because namespace pairs are considered equal. If you try to move [[Main Page]] to [[Talk:Test]] it will actually be moved to [[Test]]. The setup is made so that a talkpage will never be moved to an article, and an article will never be moved to talk.

Now, do note, the extension is extremely old. I designed it back when Wikia had MediaWiki 1.8, and I also wasn't as heavily influenced by MW or experienced at that time, so it needs a lot of fixing up. Actually, my entire reason for posting to mediawiki-l was asking if anyone wanted me to fix up the extension so it could be committed to trunk.

That being said, the old page:
http://www.wikia.com/wiki/User:Dantman/GE_Extended/Custom_Extensions/MovepageEx/SpecialMovepageEx.php

So if anyone wants, I could be persuaded to work on fixing it up for newer versions. I finally do have my own webspace, so if I'm still waiting for a time when I can poke Brion to give me commit access, I can always put it into my own public SVN when I get it setup.

webmaster wrote:

Dantman,

Funny seeing you here!

If your code does it more gracefully that what is found in
SpecialRenameuser.php, I am all for it!
I definitely believe this should be implemented in core, though, not as an
extension.

I also think it should be enabled by default when moving, but off by default
when protecting (Bug 12908) or deleting (Bug 13491).

  • Bug 2028 has been marked as a duplicate of this bug. ***

I believe Simetrical has fixed this with r33565.

ayg wrote:

Yeah, didn't know about this bug.

  • Bug 15082 has been marked as a duplicate of this bug. ***