Example #1
0
	def __init__(self, data, numOld, numNew):
		if data:
			for case in switch(data[0]):
				if case('@'):
					self.numOld = '...'
					self.numNew = '...'
					self.set_type('chunk')
					break
				if case('-'):
					self.numOld = numOld
					self.numNew = ''
					self.set_type('old')
					break
				if case('+'):
					self.numOld = ''
					self.numNew = numNew
					self.set_type('new')
					break
				if case():
					self.numNew = numNew
					self.numOld = numOld
			self.set_line(data)
		else:
			self.numNew = numNew
			self.numOld = numOld
Example #2
0
    def read_diff_lines(self, difflines):
        diffs = []
        lineNumOld = 0
        lineNumNew = 0
        diff = None
        # self.logger.debug(difflines)
        for diffline in difflines:
            if diffline[0:4] == "diff":
                if diff:
                    # self.logger.debug('ajout de diff dans diffs')
                    diffs.append(diff)
                diff = GitDiff()
                # self.logger.debug('diffline : %s' % diffline)
                matches = re.search("^diff --[\S]+ a/?(.+) b/?", diffline)
                # matches = re.search('^diff[\s].*[\s].*[\s](?:.*\/)*(.*)', diffline)
                # self.logger.debug('matches %s' % matches.group(1))
                if matches:
                    diff.set_file(matches.group(1))
                continue
            if diffline[0:5] == "index":
                diff.set_index(diffline)
                continue
            if diffline[0:3] == "---":
                diff.set_old(diffline)
                continue
            if diffline[0:3] == "+++":
                diff.set_new(diffline)
                continue
            if diffline[0:6] == "Binary":
                m = re.search("Binary files (.+) and (.+) differ")
                if m:
                    diff.set_old(m.group(1))
                    diff.set_new("    {" + m.group(2) + "}")
            if len(diffline) > 0:
                for case in switch(diffline[0]):
                    if case("@"):
                        m2 = re.search("@@ -([0-9]+)", diffline)
                        if m2:
                            # self.logger.debug('m2 : %s' % m2.group(1))
                            lineNumOld = int(m2.group(1)) - 1
                            lineNumNew = int(m2.group(1)) - 1
                        break
                    if case("-"):
                        lineNumOld = lineNumOld + 1
                        break
                    if case("+"):
                        lineNumNew = lineNumNew + 1
                        break
                    if case():
                        lineNumNew = lineNumNew + 1
                        lineNumOld = lineNumOld + 1
            else:
                lineNumNew = lineNumNew + 1
                lineNumOld = lineNumOld + 1
                # self.logger.debug('ajout de ligne')
            diff.add_line(diffline, lineNumOld, lineNumNew)

        if diff:
            # self.logger.debug('ajout de diff dans diffs 2')
            diffs.append(diff)
        return diffs