2010-05-07 11 views
10

Me di cuenta de que al hacer la vista de código, las personas aquí en mi empresa suelen dar la rama en la que se realiza su trabajo, y nada más. Así que supongo que debe haber una manera fácil de descubrir todos los archivos que tienen una versión en la rama dada, que es lo mismo para encontrar todos los archivos que han sido cambiados.cómo encontrar archivos en una rama determinada

Sí, no sé la "manera fácil" que se espera para encontrar archivos en ciertas sucursales, así que necesito su ayuda y gracias de antemano.

+0

más información también aquí http://stackoverflow.com/questions/5800926/how-to-find-the-files-modified-under-a-clearcase-branch – x29a

Respuesta

21

Puede enumerar rápidamente todos los archivos de una rama particular:

cleartool find . -type f -branch "brtype(abranch)" -print 

Yo recomendaría combinar eso con:

  • -user para limitar a un usuario en particular, en el caso de que varios usuarios utilizan el mismo rama.
 
    cleartool find . -type f -branch "brtype(abranch)" -user aloginname -print 
filtro
  • -created_since, para encontrar todos los elementos creados desde una fecha determinada, en caso de que su opinión es incrementales para un trabajo realizado en la misma rama.
 
    cleartool find . -type f -branch "brtype(abranch)" -element "{created_since(10-Jan)}" -user aloginname -print 
+0

¿cuál es la diferencia entre el filtro created_since en -version (como se indica en http://stackoverflow.com/questions/22300632/cleartool-finding-changes-from-specific -date) y el -elemento utilizado aquí? los resultados seguramente difieren. – x29a

+0

@ x29a es solo en qué elemento se aplica la idea_since: el elemento (es decir, cuando un archivo se ha "agregado al control de origen" o las versiones de ese elemento (es decir, todas las versiones registradas desde una fecha determinada) – VonC

+0

creé un nueva pregunta para esto: http://stackoverflow.com/questions/27959952/cleartool-difference-between-element-and-version - disculpe la confusión. editlimit de 5min get me;/ – x29a

1

Aquí es un script en Python que hace el truco. Puede parecer mucho más complicado pero es copiar y pegar. Siéntase libre de cambiar el cmd con VonC.

import subprocess 
import os 
import sys 
from optparse import OptionParser 

def pipeCmd(Cmd): 
    pipe = subprocess.Popen(Cmd, 
     shell = True, 
     stdout = subprocess.PIPE, 
     stderr = subprocess.PIPE) 
    (stdout_data,stderr_data) = pipe.communicate() 
    return (pipe,stdout_data,stderr_data) 

def main(br_name):       
     cmd = "cleartool find -vis -avobs -element 'brtype(" + br_name + ")' -exec 'cleartool describe -short $CLEARCASE_PN'" 
     pipe,data,err = pipeCmd(cmd) 
     if 0 == pipe.returncode: 
      print data 
     else: 
      print err       

# Process cmd arguments 
if (1): 
    if (len(sys.argv) <= 1): 
     print "Finds all branches in your view." 
     print "\nExamples:\n"\ 
      "allBranches.py -b $BRANCH_NAME \n"\ 
      "allBranches.py --branch=$BRANCH_NAME\n" 

    parser = OptionParser() 
    branchName = "Example: 'rs__BRANCH_NAME_int'" 
     parser.add_option("-b", "--branch", dest="BRANCH_NAME", help=branchName, metavar="BRANCH_NAME")  
    (options, args) = parser.parse_args() 

if (options.BRANCH_NAME): 
     print "\nFinding " + options.BRANCH_NAME + " elements...\n" 
     main(options.BRANCH_NAME) 

sys.exit(0) 
+0

Si está utilizando Windows ClearCase 'Informe Builder 'se puede usar para encontrar todos los elementos con un nombre de bifurcación determinado, así como la opción para encontrar el último número de versión (elemento explícito). –

Cuestiones relacionadas