Project

General

Profile

Actions

Bug #2849

closed

Id требования меняется при копировании

Added by Viktoria Kopach over 12 years ago. Updated over 12 years ago.

Status:
Closed
Priority:
Normal
Category:
-
Target version:
Start date:
05/11/2012
Due date:
% Done:

100%

Estimated time:
Detected in build:
0.13.152
Platform:
Windows x64
Published in build:
0.13.153

Description

При копировании скопированное требование всегда меняет имя на 01.
То есть, например, если есть дерево требований:
q
w
После копирования q в w будет такое дерево:
q
w
--01
Хотя ожидается
q
w
--q

Если копируется не одно требование, а целое поддерево, то на 01 меняется имя только корневого требования.

Ожидается, что имя требования будет меняться только в том случае, если оно совпадает с именем уже имеющегося в том же месте требования.


Related issues 1 (0 open1 closed)

Related to Requality - Feature #2780: Копирование требованийClosedAlexey Khoroshilov04/24/2012

Actions
Actions #1

Updated by Vladimir Fedotov over 12 years ago

На самом деле меняется не имя, а id.
В данном случае, id совпадал с именем, поэтому когда изменился id, изменилось и имя.

Легко сделать так чтобы id менялся только при совпадении с уже существующим, но это создает непоследовательность в поведении, которая смущает: при копировании одних узлов id меняется, при копировании других не меняется.

Actions #2

Updated by Viktoria Kopach over 12 years ago

Нужно по аналогии с файловой системой сделать. Если совпадает имя, менять следующим образом: добавлять к id "_copy".
Если еще раз совпадает "_copy2" и т.д.

Actions #3

Updated by Viktoria Kopach over 12 years ago

  • Subject changed from Имя требования меняется при копировании to Id требования меняется при копировании

Поправила название тикета

Actions #4

Updated by Vladimir Fedotov over 12 years ago

Так тоже плохо. id узлов совпадают постоянно, учитывая, что это по умолчанию просто натуральные числа. Добавление copy вносит путаницу: copy чего? В наших проектах 100500 узлов с id "01", ничтожно малый процент из них - копии.

Это всего лишь следствие того, что схема именования узлов изначально кривая.

Actions #5

Updated by Alexey Khoroshilov over 12 years ago

  • Target version set to 0.13

Vladimir Fedotov wrote:

Так тоже плохо. id узлов совпадают постоянно, учитывая, что это по умолчанию просто натуральные числа. Добавление copy вносит путаницу: copy чего? В наших проектах 100500 узлов с id "01", ничтожно малый процент из них - копии.

Не согласен. Именно поэтому я не закрыл тикет #2780 (см. комментарий).

Это всего лишь следствие того, что схема именования узлов изначально кривая.

Это следствие неудачной схемы именования, выбранной по умолчанию. И это другая проблема.
А копирование должно сохранять идентификатор, если нет необходимости в обратном.

Обсуждение улучшения схемы именования по умолчанию предлагаю перенести в другой тикет.
В пяти других проектах схема именования по умолчанию в буквальном виде не используется, поэтому текущий вариант копирования там смотрится неприемлемо.

Для затравки в новый тикет:
Текущая схема именования разрабатывалась исходя из предположения, что требования получают осмысленные имена на верхних уровнях иерархии, а требования с числовыми идентификаторами локализуются внутри относительно небольшой группы подтребовний нижнего уровня (обычно глубины 1-2, в редких случаях 3, и совсем редко 4 и больше). В каждом проекте именование верхнего уровня вырабатывается индивидуально, поэтому, по сути, автоматизировалась только работа с требованиями нижнего уровня. Какие есть идеи по улучшению этого подхода?

Из предыдущих обсуждений, вспыла и другая проблема. Если работать с SVN, то не удается скрыть от пользователя идентификацию требований в файловой системе, поэтому возможно необходимо пересмотреть механизм разделения идентификатора и имени.

Actions #6

Updated by Vladimir Fedotov over 12 years ago

Я прочитал два раза, но не понял как предлагается переименовывать идентификаторы при копировании.

Actions #7

Updated by Alexey Khoroshilov over 12 years ago

Vladimir Fedotov wrote:

Я прочитал два раза, но не понял как предлагается переименовывать идентификаторы при копировании.

При копировании в место, где не возникает конфликта идентификаторов, идентификатор копируемого требования остается неизменным. Использовать автоматическую генерацию нового идентификатора логично только при наличии конфликта. Кроме того, вместо нового идентификатора получающегося по умолчанию предлагаю генерировать новый идентификатор на основе старого путем добавления к старому идентификатору некоторого суффикса. Например, переименовывать в <old-id>_copy. Если и c таким идентификатором возникает конфликт, то попробовать <old-id>_copy2 и т.д.

Actions #8

Updated by Vladimir Fedotov over 12 years ago

  • Status changed from New to Resolved
  • % Done changed from 0 to 100

Applied in changeset r2814.

Actions #9

Updated by Yuriy Shekochihin over 12 years ago

  • Published in build set to 0.13.153
Actions #10

Updated by Viktoria Kopach over 12 years ago

  • Status changed from Resolved to Verified
  • Assignee set to Alexey Khoroshilov
Actions #11

Updated by Alexey Khoroshilov over 12 years ago

  • Status changed from Verified to Closed
Actions

Also available in: Atom PDF