How do I get MKS project details based on filename?

1.3k views Asked by At

Is there anyway to get the project under which the file is present in MKS command line interface? I am new to CLI scripting for MKS and could not find any proper results.

All I want is

-> [command] [filename] -> [project path]/project.pj

Any help is greatly appreciated.

2

There are 2 answers

0
vasilenicusor On

The command si locate with a specific configuration, can return the project/projects where a file is registered. This functionality is available only with DB back-end repository and will not work with RCS repository.

If you want to get the project under which the file is located you must ensure that in the MKS repository exists only one file with this name, otherwise, you will get all projects where is located this file.

You can use this command, which for me works fine, or you can customize for your needs

si locate –hostname=%mks_Hostname% --port=%msk_Port% --user=%mks_User% --depth=all --devpathscope=all --exactmatch --listfields=devpath,name,project,checkpoints,dates --memberbyname="%Filename%"

si locate help

Usage: si locate options... current or former member/subproject; options are:
    --[no]casesensitive  Make search case sensitive (default is --nocasesensitive for case insensitive servers)
    --depth=[current|build|all]  How much historical data should be encompassed in the search
    --devpathscope=[this|others|all]  Which devpaths should be encompassed in the search
    --distinct=[project|devpath|registeredproject]  In distinct mode, what output should be displayed
    --[no]exactmatch  Match search string exactly (default is --noexactmatch)
    --height=value  The height in pixels of the windows
    --[no]limittoactivepaths  Limit search to active projects
    --listfields=field1[:width1],field2[:width2]... where fieldn can be any of: checkpoints,configPath,dates,devpath,flatPath,name,project,registeredproject,revisions
    --memberbyname=value  The search string for Locate member by name
    --mode=[distinct|list]  Output mode
    --numberofresults=value  The maximum number of results to return
    --projectscope=[this|others|all]  Which projects should be encompassed in the search
    -r value  lookup a single revision (for members)
    --revision=value  lookup a single revision (for members)
    --subprojectbyname=value  The search string for Locate subproject by name
    --width=value  The width in pixels of the windows
    -x value  The x location in pixels of the window
    -y value  The y location in pixels of the window
    --devpath=value  The development path (to refer variant projects)
    --[no]failOnAmbiguousProject  Whether to abort when multiple projects correspond to a flat project string.
    -P value  The name of the target project
    --project=value  The name of the target project
    --projectRevision=value  The project revision (to refer build projects)
    -S value  The name of the sandbox (can be used as project redirector)
    --sandbox=value  The name of the sandbox (can be used as project redirector)
    -?  Shows the usage for a command
    --[no]batch  Control batch mode (no user interaction in batch mode)
    --cwd=value  Act as if command executed in specified directory
    --forceConfirm=[yes|no]  Specify an answer to all confirmation questions
    -g  User interaction should happen via the GUI
    --gui  User interaction should happen via the GUI
    --hostname=value  Hostname of server
    -N  Responds to all confirmations with "no"
    --no  Responds to all confirmations with "no"
    --password=value  Credentials (e.g., password) to login with
    --port=value  TCP/IP port number of server
    --quiet  Control status display
    --settingsUI=[gui|default]  Control UI for command options
    --status=[none|gui|default]  Control status display
    --usage  Shows the usage for a command
    --user=value  Username to login to server with
    -Y  Responds to all confirmations with "yes"
    --yes  Responds to all confirmations with "yes"
0
grenix On

As for si locate:

Provided that your current directory is somewhere in the tree of a registered sandbox you could just memorize

si locate filename

eg

c:\>my_sandboxes\prjA\src>si locate main.c

You might get multiple results/answers eg. if the project has variants and/or the archive is shared in multiple projects the server.

If you want all the sophisticated possibilities of Member->Locate from the gui you sholud read some reference eg. SourceCLIReference_Integrity_10_4.pdf or like already mentioned.

si locate help