Wrong rename on subfolders in Contents

From SuperMemopedia
Revision as of 23:48, 7 October 2013 by SuperMemoHelp (talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

recommended practice

When creating categories, always keep their root within the original newly created branch. Rooting the category at a higher level can have confusing consequences. In particular, choosing the tree root as the category root will give SuperMemo a free hand in reorganizing the entire tree in cases of branch overflow.


A design problem has now been well documented. This is the scenario:

  1. you use a large branch with many elements
  2. overflow occurs on a hook when exceeding children limit per branch
  3. SuperMemo re-arranges the folders of the current category to make space for new branches
  4. SuperMemo uses the category name, not the root node name, to name extra folders created for the extra space
  5. if your category name, is not relevant to the root of the category, the naming might be very confusing

In the presented examples, the category name "German" must have been hooked to the folders of GRE Exam and Advanced English respectively. Overflow resulted in generating new folders. Folder names use numbers for different nesting levels. From this, and from the number of branch connectors, it might be concluded that the category "German" was dangerously rooted in the top level of the collection. This gives SuperMemo cart blanche for reorganizing the entire tree. A good practice is to root a category in the branch that is strictly relevant to the added material.


case 1

For some unknown reason the names of the folders are changed from GRE to German! Why does it happen?

case 2

Similar case (probably submitted by the same user via mail)


If would be helpful to know if this happened automatically or through some of the functions in SuperMemo. For example, Arrange in folders on the second folder from top (German) would be legitimate. The same function on GRE would not. As for other contexts, it all depends on the source of the name (category, branch, parent, etc.).

followup 1

The reported bug, as seen in the picture, could never be reproduced. Detailed investigation in code did not reveal any vulnerabilities. There were two reports, however, both came from the same collection where the template name German somehow was used to set the name of folders (possibly during Repair collection).

followup 2

The investigation from "followup 1" focused on Arrange in folders. However, there is a separate mechanism for "arranging folders" that occurs at category hook overflow. The problem was located to the behavior of SuperMemo at category overflow.

followup 3

It appears this is not a bug, but a confusing design feature. Category overflow rearranges folders, but it changes only the names of automatically created folders, hence the complex structure. It uses category name as the template for folder names. It might use the name of the parent branch, rather than the category name, in generating folder. However, this change might prevent discovering the presented case. Moreover, when rearranging folders, the parent name is often automatically generated, and the root name is often the same as the category name. In the presented case, the root was the root of the entire collection. If the collection was named "My collection", the new names would be even more confusing.

In other words, this is how SuperMemo is supposed to work, except it might look for ways of warning the user not to set a root of categories on large well-managed branches. A category should have its folders growing naturally, and be only a subpart of a larger structure that may be edited manually by the user.