+ change = int(details["change"])
+
+ self.lastChange = change
+
+ if change in self.labels:
+ label = self.labels[change]
+ labelDetails = label[0]
+ labelRevisions = label[1]
+
+ files = p4CmdList("files %s...@%s" % (branchPrefix, change))
+
+ if len(files) == len(labelRevisions):
+
+ cleanedFiles = {}
+ for info in files:
+ if info["action"] == "delete":
+ continue
+ cleanedFiles[info["depotFile"]] = info["rev"]
+
+ if cleanedFiles == labelRevisions:
+ self.gitStream.write("tag tag_%s\n" % labelDetails["label"])
+ self.gitStream.write("from %s\n" % branch)
+
+ owner = labelDetails["Owner"]
+ tagger = ""
+ if author in self.users:
+ tagger = "%s %s %s" % (self.users[owner], epoch, self.tz)
+ else:
+ tagger = "%s <a@b> %s %s" % (owner, epoch, self.tz)
+ self.gitStream.write("tagger %s\n" % tagger)
+ self.gitStream.write("data <<EOT\n")
+ self.gitStream.write(labelDetails["Description"])
+ self.gitStream.write("EOT\n\n")
+
+ else:
+ if not silent:
+ print "Tag %s does not match with change %s: files do not match." % (labelDetails["label"], change)
+
+ else:
+ if not silent:
+ print "Tag %s does not match with change %s: file count is different." % (labelDetails["label"], change)