Code Search for Developers
 
 
  

CompareDirs.py from p4shelf at Krugle


Show CompareDirs.py syntax highlighted

#####################################################################################
#
#  Copyright (c) Microsoft Corporation. All rights reserved.
#
#  This source code is subject to terms and conditions of the Shared Source License
#  for IronPython. A copy of the license can be found in the License.html file
#  at the root of this distribution. If you can not locate the Shared Source License
#  for IronPython, please send an email to ironpy@microsoft.com.
#  By using this source code in any fashion, you are agreeing to be bound by
#  the terms of the Shared Source License for IronPython.
#
#  You must not remove this notice, or any other, from this software.
#
######################################################################################

import sys,nt
sys.path.append(nt.environ['IP_ROOT'] + '\\External\\Regress\\Python24\\Lib')
import filecmp

def compare_dirs(dir1, dir2):
    "Tests whether two folders, including all their contents and subdirectories are identical or not (True == they're the same, False == they are not the same)"
    dc = filecmp.dircmp(dir1,dir2)
    if len(dc.funny_files) > 0 or len(dc.left_only) > 0 or len(dc.right_only) > 0 or len(dc.diff_files) > 0:
        dc.report()
        return False
    else:
        for subdir in dc.common_dirs:
            if not compare_dirs(dir1 + "\\" + subdir, dir2 + "\\" + subdir):
                return False
        return True


def main():
    if len(sys.argv)!=3:
        print 'Usage: CompareDirs <dir1> <dir2>'
        sys.exit(-1)
        
    if compare_dirs(sys.argv[1],sys.argv[2]):
        print "The directories are identical"
        sys.exit(0)
    else: #the part that differed is explained via dircmp.report() above
        print "The directories differ"
        sys.exit(1)

if __name__=="__main__":
    main()




See more files for this project here

p4shelf

A feature in Visual Studio Team Studio that was immediately appealing to me was shelving. The goal of this tool is replicate that general functionality in Perforce.

Project homepage: http://code.google.com/p/p4shelf/
Programming language(s): C#,C++,Python
License: gpl2

  Tests/
    Imp/
      pkg_a/
        pkg_b/
          pkg_c/
            pkg_d/
      pkg_m/
      pkg_q/
        pkg_r/
          pkg_s/
    Inc/
    Inputs/
    StandAlone/
      ModPath/
    Util/
    compat/
  Wix/
    Core.wxs
    Doc.wxs
    IronPython.wxs
    Src.wxs
    build.bat
  CompareDirs.py
  clean.py
  copyrights.py
  generate.py
  generate_alltypes.py
  generate_binops.py
  generate_calls.py
  generate_convert.py
  generate_environment.py
  generate_exceptions.py
  generate_indicetest.py
  generate_math.py
  generate_ops.py
  generate_symboltable.py
  generate_typecache.py
  generate_walker.py
  make_meta1.py
  radix_generator.py
  test_builder.py
  test_cgcheck.py
  test_parrot.py
  test_pystone.py