diff --git a/codeface/cluster/cluster.py b/codeface/cluster/cluster.py index f2b42c04..28df3a8a 100755 --- a/codeface/cluster/cluster.py +++ b/codeface/cluster/cluster.py @@ -1097,6 +1097,7 @@ def writeCommitData2File(cmtlist, id_mgr, outdir, releaseRangeID, dbm, conf, values = {"commitHash" : cmt.id, "commitDate" : tstamp_to_sql(int(cmt.getCdate())), "author" : cmt.getAuthorPI().getID(), + "committer": cmt.getCommitterPI().getID(), "authorDate" : tstamp_to_sql(int(cmt.adate)), "authorTimeOffset" : cmt.adate_tz, "projectId" : projectID, @@ -1380,13 +1381,14 @@ def populatePersonDB(cmtlist, id_mgr, link_type=None): cmt.setAuthorPI(pi) pi.addCommit(cmt) + #create person for committer + ID_c = id_mgr.getPersonID(cmt.getCommitterName()) + pi_c = id_mgr.getPI(ID_c) + cmt.setCommitterPI(pi_c) + if link_type in \ (LinkType.proximity, LinkType.committer2author, LinkType.file, LinkType.feature, LinkType.feature_file): - #create person for committer - ID_c = id_mgr.getPersonID(cmt.getCommitterName()) - pi_c = id_mgr.getPI(ID_c) - cmt.setCommitterPI(pi_c) if ID_c != ID: # Only add the commit to the committer's person instance # if committer and author differ, otherwise contributions diff --git a/datamodel/codeface_schema.sql b/datamodel/codeface_schema.sql index 2a2a51c2..dae1c71d 100644 --- a/datamodel/codeface_schema.sql +++ b/datamodel/codeface_schema.sql @@ -313,6 +313,7 @@ CREATE TABLE IF NOT EXISTS `codeface`.`commit` ( `authorTimeOffset` INT NULL DEFAULT NULL COMMENT '', `authorTimezones` VARCHAR(255) NULL DEFAULT NULL COMMENT '', `author` BIGINT NOT NULL COMMENT '', + `committer` BIGINT NOT NULL COMMENT '', `projectId` BIGINT NOT NULL COMMENT '', `ChangedFiles` INT NULL DEFAULT NULL COMMENT '', `AddedLines` INT NULL DEFAULT NULL COMMENT '', @@ -338,6 +339,11 @@ CREATE TABLE IF NOT EXISTS `codeface`.`commit` ( REFERENCES `codeface`.`person` (`id`) ON DELETE CASCADE ON UPDATE CASCADE, + CONSTRAINT `commit_committer` + FOREIGN KEY (`committer`) + REFERENCES `codeface`.`person` (`id`) + ON DELETE CASCADE + ON UPDATE CASCADE, CONSTRAINT `commit_project` FOREIGN KEY (`projectId`) REFERENCES `codeface`.`project` (`id`) @@ -350,7 +356,7 @@ CREATE TABLE IF NOT EXISTS `codeface`.`commit` ( ON UPDATE CASCADE) ENGINE = InnoDB; -CREATE INDEX `commit_person_idx` ON `codeface`.`commit` (`author` ASC) COMMENT ''; +CREATE INDEX `commit_person_idx` ON `codeface`.`commit` (`author` ASC, `committer` ASC) COMMENT ''; CREATE INDEX `commit_project_idx` ON `codeface`.`commit` (`projectId` ASC) COMMENT '';