code: def getmerge(self, path, dst, newline=False, check_crc=False):
          ''' Get all the files in the directories that
          match the source file pattern and merge and sort them to only
          one file on local fs.
          :param paths: Directory containing files that will be merged
          :type paths: string
          :param dst: Path of file that will be written
          :type dst: string
          :param nl: Add a newline character at the end of each file.
          :type nl: boolean
          :returns: string content of the merged file at dst
          '''
          if not path:
              raise InvalidInputException("getmerge: no path given")
          if not dst:
              raise InvalidInputException("getmerge: no destination given")
          temporary_target = "%s._COPYING_" % dst
          f = open(temporary_target, 'w')
          processor = lambda path, node, dst=dst, check_crc=check_crc: self._handle_getmerge(path, node, dst, check_crc)
          try:
              for item in self._find_items([path], processor, include_toplevel=True, recurse=False, include_children=True):
                  for load in item:
                      if load['result']:
                          f.write(load['response'])
                      elif not load['error'] is '':
                          if os.path.isfile(temporary_target):
                              os.remove(temporary_target)
                          raise FatalException(load['error'])
                  if newline and load['response']:
                      f.write("\n")
              yield {"path": dst, "response": '', "result": True, "error": load['error'], "source_path": path}
          finally:
              if os.path.isfile(temporary_target):
                  f.close()
                  os.rename(temporary_target, dst)