Nova Patents
EP0339901B1

Improved version management tool

Abstract

This record has no abstract on file.

EP0339901B1, drawing sheet 1
Sheet 1 of 16

Term

Term ended

Expired 24 April 2009, 17.4 years ago.

  1. Priority
  2. Filed
  3. Granted
  4. Expired
  5. Today

6 claims: 6 independent, 0 dependent

  1. 1
    A method for creating a text file of a desired version of a module (10), where the desired version (40) is included in a given one of many possible paths (12), with each path (12) including an ordered set of versions (40), each identified by a version number, of a common module (10), with each version (40) in a path (12) evolving from the immediately preceding version (40), and characterised by:storing where the status history of the activation and deletions of each line active in any version (40) in a path (12) are stored in a variant history file (22) for the path (12);storing where the text of the lines active in all versions (40) in all paths (12) are stored in an indexed line file (20) with each line in the indexed line file (20) identified by a unique line identifier ULI (24);identifying the given path (12) in which the desired version (40) is included and the version number of the desired version in said given path (12);searching (50-57) the variant history file (22) of the given path (12) to determine which lines in the line file (20) are active in the desired version (40);andretrieving (66), from said line file (20) the text of lines determined to be active in the desired version (40). Eine Methode, um eine Textdatei einer gewünschten Version eines Moduls (10) zu erstellen, wobei die gewünschte Version (40) in einem gegebenen von vielen möglichen Pfaden (12) enthalten ist, und wobei jeder Pfad (12) ein geordnetes Set von Versionen (40) enthält, von denen jedes durch eine Versionsnummer identifiziert ist und weiterhin von einem gemeinsamen Modul (10) ist, wobei jede Version (40) in einem Pfad (12) aus der unmittelbar vorhergehenden Version entsteht und charakterisiert ist durch: Speichern wo die Statusvorgeschichte der Aktivierung und Auslöschungen jeder in irgendeiner Version (40) in einem Pfad (12) aktiven Zeile in einer Varianten Vorgeschichtsdatei (22) für den Pfad (12) gespeichert werden;Speichern wo der Text der in allen Versionen (40) in allen Pfaden (12) aktiven Zeilen in einer indizierten Zeilendatei (20) gespeichert werden, wobei jede Zeile in der indizierten Zeilendatei (20) durch einen einzigen Zeilenidentifizierer ULI (Unique Line Identifier) (24) identifiziert wird;Identifizierung des gegebenen Pfades (12), in welchem die gewünschte Version (40) enthalten ist und die Versionsnummer der gewünschten Version in obengenanntem gegebenem Pfad (12);Suchen (50-57) der Varianten Vorgeschichtsdatei (22) des gegebenen Pfades (12), um zu bestimmen, welche Zeilen in der Zeilendatei (20) in der gewünschten Version (40) aktiv sind;undWiedergewinnung (66) des Textes der in der gewünschten Version (40) als aktiv bestimmten Zeilen von obengenannter Zeilendatei (20). Procédé de création d'un fichier de texte d'une version souhaitée d'un module (10), où la version souhaitée (40) est incluse dans un trajet donné parmi de nombreux trajets possibles (12), chaque trajet (12) incluant un ensemble ordonné de versions (40) d'un module commun (10), identifiées chacune par un numéro de version, chaque version (40) d'un trajet (12) évoluant à partir de la version immédiatement précédente (40), et caractérisé par les étapes consistant à: mémoriser où l'histoire d'état de l'activation et des suppressions de chaque ligne active d'une version quelconque (40) d'un trajet (12) est mémorisée dans un fichier (22) d'histoire des variantes du trajet (12);mémoriser où le texte des lignes actives de toutes les versions (40) de tous les trajets (12) est mémorisé dans un fichier indexé (20) de lignes, chaque ligne du fichier indexé (20) de lignes étant identifiée par un élément d'identification unique de ligne ULI (24);identifier le trajet donné (12) dans lequel la version souhaitée (40) est incluse et le numéro de version de la version souhaitée dans ledit trajet donné (12);explorer (50 à 57) le fichier (22) d'histoire des variantes du trajet donné (12) afin de déterminer les lignes du fichier (20) de lignes qui sont actives dans la version souhaitée (40);etextraire (66), à partir dudit fichier (20) de lignes, le texte de lignes déterminées comme actives dans la version souhaitée (40).
  2. 2
    Die Methode von Anspruch 1,wobei. die Varianten Vorgeschichtsdatei (22) des gegebenen Pfades (12) ein Set von Eintragungen (30) enthält, welches jedem gegebenen ULI (24) zugeordnet ist, der eine in irgendeiner Version (40) im gegebenen Pfad (12) aktive Zeile identifiziert, wobei jede Eintragung (30) in einem Set eine der Versionsnummern der Version (40) des gegebenen Pfades (12) anzeigt, wo die durch den zugeordneten ULI (24) identifizierte Zeile gelöscht ist, wobei die Eintragungen (30) in obengenannter Varianten Vorgeschichtsdatei so geordnet sind, daß die Eintragung (30), welche eine Versionsnummer einer ersten gegebenen Version (40) anzeigt, in welcher eine gegebene Zeile aktiv wird, unmittelbar der Eintragung (30), welche die Versionsnummer einer zweiten gegebenen Version (40), in welcher die obengenannte gegebene Zeile gelöscht ist, vorangestellt ist, und wo die Eintragungen (30) der Zeilen, die in der zweiten gegebenen Version (40) aktiviert wurden, unmittelbar der letzten Eintragung (30) folgen, und dabei anzeigen, daß eine Zeile in der zweiten gegebenen Version (40) gelöscht wurde und worin obengenannter Schritt des Suchens (50-57) besteht aus:Lesen (50-54) eines benachbarten Paares von vorangestellten und nachfolgenden Eintragungen (30) in obengenannter Varianten Vorgeschichtsdatei;Bestimmen, ob die ULls (24) in obengenanntem banachbartem Paar von Eintragungen (30) dieselben sind (58);ob die ULls (24) dieselben sind, wobei die identifizierende Zeile in der gewünschten Version (40) nur enthalten (66) ist, wenn die Versionsnummer, die durch obengenannte nachfolgende Eintragung (30) angezeigt wird, größer ist als die Versionsnummer von obengenannter gewünschter Version (40), wenn die Versionsnummer, die durch die vorhergegangene Eintragung (30) im Paar angezeigt wird, geringer ist als oder gleich wie die Versionsnummer der gewünschten Version (40) und wenn der Status der identifizierten Zeile, der durch die vorgegangene Eintragung (30) in dem Paar angezeigt wird, aktiv ist;undwenn die ULls (24) verschieden sind, wobei die identifizierte Zeile in der gewünschten Version (40) nur enthalten ist (57d), wenn die Versionsnummer, die durch obengenannte vorangehende Eintragung (30) in dem Paar angegeben ist, kleiner ist als oder gleich wie die Versionsnummer der gewünschten Version (40) und wenn der Status der identifizierten Zeile, der durch die vorangegangene Eintragung (30) in dem Paar angezeigt wird, aktiv ist. Procédé selon la revendication 1 dans lequel: le fichier (22) d'histoire des variantes du trajet donné (12) inclut un ensemble d'enregistrements (30) associés à chaque ULI donné (24) qui identifie une ligne active dans une version quelconque (40) du trajet donné (12), chaque enregistrement (30) d'un ensemble indiquant l'un des numéros de version de la version (40) du trajet donné (12) dans laquelle la ligne identifiée par le ULI associé (24) est supprimée, les enregistrements (30) dudit fichier d'histoire des variantes étant ordonnés d'une manière telle que l'enregistrement (30), qui indique un numéro de version d'une première version donnée (40) dans laquelle une ligne donnée devient active, précède immédiatement l'enregistrement (30) qui indique le numéro de version d'une deuxième version donnée (40) dans laquelle ladite ligne donnée est supprimée, et où les enregistrements (30) des lignes rendues actives dans la deuxième version donnée (40) suivent immédiatement le dernier enregistrement (30) qui indique qu'une ligne est supprimée dans la deuxième version donnée (40), et dans lequel ladite étape d'exploration (50 à 57) comprend les étapes consistant à:lire (50, 54) dans ledit fichier d'histoire des variantes une paire adjacente d'enregistrements précédent et suivant (30);déterminer si les ULI (24) de ladite paire adjacente d'enregistrements (30 ) sont les mêmes (58);si les ULI (24) sont les mêmes, n'inclure dans la version souhaitée (40) la ligne d'identification que si le numéro de version indiqué par ledit enregistrement suivant (30) est supérieur au numéro de version de ladite version souhaitée (40), si le numéro de version indiqué par l'enregistrement précédent (30) de la paire est inférieur ou égal au numéro de version de la version souhaitée (40), et si l'état de la ligne identifiée indiqué par l'enregistrement précédent (30) de la paire est actif;etsi les ULI (24) sont différents, n'inclure (57d) la ligne identifiée dans la version souhaitée (40) que si le numéro de version indiqué par ledit enregistrement précédent (30) de la paire est inférieur ou égal au numéro de version de la version souhaitée (40) et si l'état de la ligne identifiée indiqué par l'enregistrement précédent (30) de la paire est actif. The method of claim 1, wherein: the variant history file (22) of the given path (12) includes a set of records (30) associated with each given ULI (24) identifying a line active in any version (40) in the given path (12), with each record (30) in a set indicating one of the version numbers of the version (40) of the given path (12) where the line identified by the associated ULI (24) is deleted, with the records (30) in said variant history file ordered so that the record (30) indicating a version number of a first given version (40), in which a given line becomes active, immediately precedes the record (30) indicating the version number of a second given version (40) in which said given line is deleted, and where the records (30) of lines made active in the second given version (40) immediately follow the last record (30) indicating a line is deleted in the second given version (40), and wherein said step of searching (50-57) comprises:reading (50,54) an adjacent pair of preceding and following records (30) in said variant history file;determining whether the ULIs (24) in said adjacent pair of records (30) are the same (58);if the ULIs (24) are the same, including (66) the identifying line in the desired version (40) only if the version number indicated by said following record (30) is greater than the version number of said desired version (40), if the version number indicated by the preceding record (30) in the pair is less than or equal to the version number of the desired version (40), and if the status of the identified line indicated by the preceding record (30) in the pair is active;andif the ULIs (24) are different, including (57d) the identified line in the desired version (40) only if the version number indicated by said preceding record (30) in the pair is less than or equal to the version number of the desired version (40) and if the status of the identified line indicated by the preceding record (30) in the pair is active.
  3. 3
    Die Methode von Anspruch 2, wobei:die Eintragungen (30) der in der zweiten gegebenen Version (40) aktivierten Zeilen unmittelbar der letzten Eintragung (30), welche den Status des ULI (24) für die Zeile, welche in der Textdatei unmittelbar der in der zweiten Version (40) aktivierten Zeile vorangestellt ist, folgen. Procédé selon la revendication 2 dans lequel les enregistrements (30) de lignes rendues actives dans la deuxième version donnée (40) suivent immédiatement le dernier enregistrement (30) qui indique l'état du ULI (24) pour la ligne qui précède immédiatement, dans le fichier de texte, la ligne rendue active dans la deuxième version (40). The method of claim 2 wherein: the records (30) of lines made active in the second given version (40) immediately follow the last record (30) indicating the status of the ULI (24) for the line which, in the text file, immediately precedes the line made active in the second version (40).
  4. 4
    Die Methode von Anspruch 1, wobei:die Varianten Vorgeschichtsdatei (22) des gegebenen Pfades (12) ein Set von Einträgen (30) enthält, welches jedem ULI (24) zugeordnet ist, der eine in irgendeiner Version (40) des gegebenen Pfades (12) aktiven Zeile identifiziert, wobei jeder Eintrag (30) in einem Set eine der Versionsnummern der Versionen (40) in einem gegebenen Pfad (12) angibt, wo die durch den zugeordneten ULI (24) identifizierte Zeile aktiv wird oder eine der Versionsnummern der Versionen (40) in dem gegebenen Pfad (12), wo die durch den zugeordneten ULI (24) identifizierte Zeile gelöscht wird;und wobei obengenannter Suchschritt (50-57) die folgenden Schritte enthält:das Ordnen der Eintragungen (30) in obengenannter Varianten Vorgeschichtsdatei (22), so daß der Eintrag (30), der eine Versionsnummer einer ersten gegebenen Version (40), in welcher eine gegebene Zeile aktiv wird, angibt, unmittelbar der Eintragung (30) vorangeht, welche die Versionsnummer einer zweiten gegebenen Version (40) angibt, in welcher obengenannte gegebene Zeile gelöscht ist und wo die Eintragungen (30) der Zeilen , die in der zweiten gegebenen Version (40) aktiviert wurden, unmittelbar der letzten Eintragung (30) folgen, die anzeigt, daß ein Zeile in der zweiten gegebenen Version (40) gelöscht wurde;das Lesen eines benachbarten Paares von vorhergehenden und nachfolgenden Eintragungen (30) in obengenannter Varianten Vorgeschichtsdatei (22);die Bestimmung, ob die ULls (24) im obengenannten benachbarten Paar von Eintragungen (30) dieselben sind,wenn die ULls (24) dieselben sind, einschließlich (66) der identifizierten Zeile in der gewünschten Version (40), wenn die Versionsnummer, die durch obengenannten nachfolgenden Eintrag (30) angegeben wird, größer ist als die Versionsnummer von obengenannter gewünschter Version (40), wenn die Versionsnummer, die durch den vorangehenden Eintrag (30) im Paar angezeigt wird, kleiner als oder gleich wie die Versionsnummer der gewünschten Version (40) ist, und wenn der Status der identifizierten Zeile, der durch den vorhergehenden Eintrag (30) in dem Paar angegeben wird, aktiv ist;undwenn die ULls (24) verschieden sind, einschließlich (66) der identifizierten Zeile in der gewünschten Version (40) wenn die Versionsnummer, die durch obengenannten vorangehenden Eintrag (30) in dem Paar angegeben wird, kleiner als oder gleich wie die Versionsnummer der gewünschten Version (40) ist, und wenn der Status der identifizierten Zeile, der durch den vorangehenden Eintrag (30) in dem Paar angegeben wird, aktiv ist. Procédé selon la revendication 1 dans lequel: le fichier (20) d'histoire des variantes du trajet donné (12) inclut un ensemble d'enregistrements (30) associés à chaque ULI (24) qui identifie une ligne active d'une version quelconque (40) du trajet donné (12), chaque enregistrement (30) d'un ensemble indiquant l'un des numéros de versions parmi les versions (40) d'un trajet donné (12) où la ligne identifiée par l'ULI associé (24) devient active, ou l'un des numéros de version parmi les versions (40) du trajet donné (12) où la ligne identifiée par le ULI associé (24) est supprimée;et dans lequel ladite étape d'exploration (50 à 57) comprend les étapes consistant à:ordonner les enregistrements (30) dudit fichier d'histoire des variantes (22) d'une manière telle que l'enregistrement (30) qui indique un numéro de version d'une première version donnée (40), dans laquelle une ligne donnée devient active, précède immédiatement l'enregistrement (30) qui indique le numéro de version d'une deuxième version donnée (40) dans laquelle ladite ligne donnée est supprimée, et où les enregistrements (30) de lignes rendues actives dans la deuxième version donnée (40) suivent immédiatement le dernier enregistrement (30) qui indique qu'une ligne est supprimée dans la deuxième version donnée (40);lire dans ledit fichier (22) d'histoire des variantes une paire adjacente d'enregistrements précédent et suivant (30);déterminer si les ULI (24) de ladite paire adjacente d'enregistrements (30 ) sont les mêmes;si les ULI (24) sont les mêmes, inclure (66) dans la version souhaitée (40) la ligne identifiée si le numéro de version indiqué par ledit enregistrement suivant (30) est supérieur au numéro de version de ladite version souhaitée (40), si le numéro de version indiqué par l'enregistrement précédent (30) de la paire est inférieur ou égal au numéro de version de la version souhaitée (40), et si l'état de la ligne identifiée indiqué par l'enregistrement précédent (30) de la paire est actif;etsi les ULI (24) sont différents, inclure (66) dans la version souhaitée (40) la ligne identifiée si le numéro de version indiqué par ledit enregistrement précédent (30) de la paire est inférieur ou égal au numéro de version de la version souhaitée (40) et si l'état de la ligne identifiée indiqué par l'enregistrement précédent (30) de la paire est actif. The method of claim 1 wherein: the variant history file (22) of the given path (12) includes a set of records (30) associated with each ULI (24) identifying a line active in any version (40) of the given path (12), with each record (30) in a set indicating one of the version numbers of the versions (40) in a given path (12) where the line identified by the associated ULI (24) becomes active, or one of the version numbers of the versions (40) in the given path (12) where the line identified by the associated ULI (24) is deleted;and wherein said step of searching (50-57) comprises the steps of:Ordering the records (30) in said variant history file (22) so that the record (30) indicating a version number of the a first given version (40), in which a given line becomes active, immediately precedes the record (30) indicating the version number of a second given version (40) in which said given line is deleted, and where the records (30) of lines made active in the second given version (40) immediately follow the last record (30) indicating a line is deleted in the second given version (40);reading an adjacent pair of preceding and following records (30) in said variant history file (22);determining whether the ULIs (24) in said adjacent pair of records (30) are the same;if the ULIS (24) are the same, including (66) the identified line in the desired version (40) if the version number indicated by said following record (30) is greater than the version number of said desired version (40), if the version number indicated by the preceding record (30) in the pair is less than or equal to the version number of the desired version (40), and if the status of the identified line indicated by the preceding record (30) in the pair is active;andif the ULIs (24) are different, including (66) the identified line in the desired version (40) if the version number indicated by said preceding record (30) in the pair is less than or equal to the version number of the desired version (40) and if the status of the identified line indicated by the preceding record (30) in the pair is active.
  5. 5
    A computer (17), including a memory, operating under control of a stored program for allowing a user to store a source file module (10), to create and store a new version of the module (10), to create and name independent paths (12) of development of the module (10), with each path (12) being an ordered set of versions (40), characterised by:means (13) for building an indexed line file (20) stored in the memory, including the text of all lines active in all versions (40) in all paths (12), with each line in said indexed line file (20) identified by a unique line identifier ULI (24);means (15) for building a variant history file (22) stored in the memory, including a set of records (30) associated with each ULI (24) identifying a line included in any version (40) along a given path (12) where each record (30) in a given set of records (30) associated with a given ULI (24) indicates a version (40) in the given path (12) where the line identified by the ULI (24) becomes active or a version (40) in the given path (12) where the ULI (24) was deleted;andmeans (13) for utilizing said variant history file (22) and indexed line file (20) to directly generate the text file (22) of a desired version (40) in said given path (12) without creating any intermediate versions (40). Ein Computer (17), der einen Speicher enthält, der unter Steuerung eines gespeicherten Programmes arbeitet, um einem Benutzer zu ermöglichen, ein Quellendateimodul (10) zu speichern, um eine neue Version des Moduls (10) herzustellen und zu speichern, um unabhängige Pfade (12) der Entwicklung des Moduls (10) herzustellen und zu benennen, wobei jeder Pfad (12) ein geordnetes Set von Versionen (40) ist, das charakterisiert ist durch: Mittel (13) um eine indizierte Zeilendatei (20) zu konstruieren, die im Speicher gespeichert ist und den Text von allen in allen Versionen (40) in allen Pfaden (12) aktiven Zeilen enthält, wobei jede Zeile in obengenannter indizierter Zeilendatei (20) durch einen einzigen Zeilenidentifizier ULI (24) identifiziert ist;Mittel (15) um eine Varianten Vorgeschichtsdatei (22), die im Speicher gespeichert ist, zu erzeugen, und die ein Set von Eintragungen (30) enthält, das zu jedem ULI (24) zugeordnet ist, der eine Zeile, die in irgendeiner Version (40) entlang eines gegebenen Pfades (12) enthalten ist, identifiziert, wobei jeder Eintrag (30) in einem gegebenen Set von Eintragungen (30), das einem gegebenen ULI (24) zugeordnet ist, eine Version (40) in dem gegebenen Pfad (12) angibt, wo die von dem ULI (24) identifizierte Zeile aktiv wird, oder eine Version (40) in dem gegebenen Pfad (12), wo das ULI (24) gelöscht wurde;undMittel (13), um obengenannte Varianten Vorgeschichtsdatei (22) und die indizierte Zeilendatei (20) dazu zu benutzen, direkt die Textdateien (22) einer gewünschten Version (40) in obengenanntem gegebenem Pfad (12) zu erzeugen, ohne irgendwelche Zwischenversionen (40) zu erzeugen. Ordinateur (17) qui inclut une mémoire fonctionnant sous commande d'un programme mémorisé pour permettre à un utilisateur de mémoriser un module (10) de fichier de source, afin de créer et de mémoriser une nouvelle version du module (10), de créer et de nommer des trajets indépendants (12) de développement du module (10), chaque trajet (12) étant un ensemble ordonné de versions (40), caractérisé par: un moyen (13) de constitution d'un fichier indexé (20) de lignes mémorisé dans la mémoire, incluant le texte de toutes les lignes actives de toutes les versions (40) de tous les trajets (12), chaque ligne dudit fichier indexé (20) de lignes étant identifiée par un élément d'identification unique de ligne ULI (24);un moyen (15) de constitution d'un fichier (22) d'histoire des variantes mémorisé dans la mémoire, incluant un ensemble d'enregistrements (30) associés à chaque ULI (24) qui identifie une ligne incluse dans une version quelconque (40) d'un trajet donné (12) où chaque enregistrement (30) d'un ensemble donné d'enregistrements (30) associé à un ULI donné (24) indique une version (40) du trajet donné (12) où la ligne identifiée par le ULI (24) devient active ou une version (40) du trajet donné (12) où le ULI (24) a été supprimé;etun moyen (13) d'utilisation dudit fichier (22) d'histoire des variantes et dudit fichier indexé (20) de lignes pour engendrer directement le fichier (22) de texte d'une version souhaitée (40) dudit trajet donné (12) sans créer aucune version intermédiaire (40).
  6. 6
    Der Computer (17) von Anspruch 5, weiterhin charakterisiert durch:Jeder einzelne Zeilenidentifizierer ULI (24) enthält eine Wechselmarke (26), die der Operation zugeordnet ist, die Version (40) zu erzeugen, wo die durch das ULI (24) identifizierte Zeile zuerst aktiv wird;und obengenannte Varianten Vorgeschichtsdatei (22) hat ihre Eintragungen (30) so geordnet, daß der Eintrag (30), der eine Versionsnummer einer ersten gegebenen Version (40), in welcher eine gegebene Zeile aktiv wird, anzeigt, unmittelbar dem Eintrag (30) vorangestellt ist, welcher die Versionsnummer einer zweiten gegebenen Version (40) anzeigt, in welcher obengenannte gegebene Zeite gelöscht ist und wo die Eintragungen (30) der Zeilen, die in der zweiten gegebenen Version (40) aktiviert wurden, unmittelbar dem letzten Eintrag (30) folgen, der anzeigt, daß eine Zeile in der zweiten gegebenen Version (40) gelöscht ist. Ordinateur (17) selon la revendication 5 caractérisé en outre en ce que chaque élément d'identification unique ULI (24) inclut une étiquette de modification (26) associée à l'opération de création de la version (40) où la ligne identifiée par le ULI (24) devient active en premier lieu;etles enregistrements dudit fichier (22) d'histoire des variantes sont ordonnés d'une manière telle que l'enregistrement (30) qui indique un numéro de version d'une première version donnée (40), dans laquelle une ligne donnée devient active, précède immédiatement l'enregistrement (30) qui indique le numéro de version d'une deuxième version donnée (40) dans laquelle ladite ligne donnée est supprimée, et où les enregistrements (30) de lignes rendues actives dans la deuxième version donnée (40) suivent immédiatement le dernier enregistrement (30) qui indique qu'une ligne est supprimée dans la deuxième version donnée (40). The computer (17) of claim 5 further characterised in that: each unique line identifier ULI (24) includes a change tag (26) associated with the operation of creating the version (40) where the line identified by the ULI (24) first becomes active;andsaid variant history file (22) has its records (30) ordered so that the record (30) indicating a version number of a first given version (40), in which a given line becomes active, immediately precedes the record (30) indicating the version number of a second given version (40) in which said given line is deleted, and where the records (30) of lines made active in the second given version (40) immediately follow the last record (30) indicating a line is deleted in the second given version (40).