2 // $Id: versioncontrol_git.install,v 1.22 2007/11/09 20:38:24 jpetso Exp $
5 * GIT backend for Version Control API - Provides GIT commit information and
6 * account management as a pluggable backend.
8 * Copyright 2006 by Karthik ("Zen", http://drupal.org/user/21209)
9 * Copyright 2006, 2007 by Derek Wright ("dww", http://drupal.org/user/46549)
10 * Copyright 2007 by Jakob Petsovits ("jpetso", http://drupal.org/user/56020)
14 * Implementation of hook_install().
16 function versioncontrol_git_install() {
17 switch ($GLOBALS['db_type']) {
20 db_query("CREATE TABLE {versioncontrol_git_accounts} (
21 uid int unsigned NOT NULL default 0,
22 repo_id int unsigned NOT NULL default 0,
23 password varchar(64) NOT NULL default '',
24 PRIMARY KEY (uid, repo_id)
25 ) /*!40100 DEFAULT CHARACTER SET utf8 */");
27 db_query("CREATE TABLE {versioncontrol_git_repositories} (
28 repo_id int unsigned NOT NULL default 0,
29 modules varchar(255) NOT NULL default '',
30 update_method tinyint unsigned NOT NULL default 0,
31 updated int unsigned NOT NULL default 0,
32 run_as_user varchar(255) NOT NULL default '',
34 ) /*!40100 DEFAULT CHARACTER SET utf8 */");
36 db_query("CREATE TABLE {versioncontrol_git_commits} (
37 commit_id int unsigned NOT NULL default 0,
38 branch_id int unsigned NOT NULL default 0,
39 PRIMARY KEY (commit_id)
40 ) /*!40100 DEFAULT CHARACTER SET utf8 */");
42 db_query("CREATE TABLE {versioncontrol_git_item_revisions} (
43 item_revision_id int unsigned NOT NULL default 0,
44 commit_id int unsigned NOT NULL default 0,
45 action tinyint unsigned NOT NULL default 0,
46 type tinyint NOT NULL default 0,
47 path varchar(255) NOT NULL default '',
48 revision varchar(255) NOT NULL default '',
49 source_revision varchar(255) NOT NULL default '',
50 lines_added smallint unsigned NOT NULL default 0,
51 lines_removed smallint unsigned NOT NULL default 0,
52 PRIMARY KEY (item_revision_id),
53 UNIQUE KEY (commit_id, path)
54 ) /*!40100 DEFAULT CHARACTER SET utf8 */");
56 db_query("CREATE TABLE {versioncontrol_git_item_tags} (
57 tag_op_id int unsigned NOT NULL default 0,
58 item_revision_id int unsigned NOT NULL default 0,
59 PRIMARY KEY (tag_op_id, item_revision_id)
60 ) /*!40100 DEFAULT CHARACTER SET utf8 */");
62 db_query("CREATE TABLE {versioncontrol_git_item_branch_points} (
63 branch_op_id int unsigned NOT NULL default 0,
64 item_revision_id int unsigned NOT NULL default 0,
65 PRIMARY KEY (branch_op_id, item_revision_id)
66 ) /*!40100 DEFAULT CHARACTER SET utf8 */");
70 db_query("CREATE TABLE {versioncontrol_git_accounts} (
71 uid int NOT NULL default 0,
72 repo_id int NOT NULL default 0,
73 password varchar(64) NOT NULL default '',
74 PRIMARY KEY (uid, repo_id)
77 db_query("CREATE TABLE {versioncontrol_git_repositories} (
78 repo_id int NOT NULL default 0,
79 modules varchar(255) NOT NULL default '',
80 update_method smallint NOT NULL default 0,
81 updated int NOT NULL default 0,
82 run_as_user varchar(255) NOT NULL default '',
86 db_query("CREATE TABLE {versioncontrol_git_commits} (
87 commit_id int NOT NULL default 0,
88 branch_id int NOT NULL default 0,
89 PRIMARY KEY (commit_id)
92 db_query("CREATE TABLE {versioncontrol_git_item_revisions} (
93 item_revision_id int NOT NULL default 0,
94 commit_id int NOT NULL default 0,
95 action smallint NOT NULL default 0,
96 type smallint NOT NULL default 0,
97 path varchar(255) NOT NULL default '',
98 revision varchar(255) NOT NULL default '',
99 source_revision varchar(255) NOT NULL default '',
100 lines_added smallint NOT NULL default 0,
101 lines_removed smallint NOT NULL default 0,
102 PRIMARY KEY (item_revision_id),
103 UNIQUE (commit_id, path)
106 db_query("CREATE TABLE {versioncontrol_git_item_tags} (
107 tag_op_id int NOT NULL default 0,
108 item_revision_id int NOT NULL default 0,
109 PRIMARY KEY (tag_op_id, item_revision_id)
112 db_query("CREATE TABLE {versioncontrol_git_item_branch_points} (
113 branch_op_id int NOT NULL default 0,
114 item_revision_id int NOT NULL default 0,
115 PRIMARY KEY (branch_op_id, item_revision_id)
123 * Implementation of hook_uninstall().
125 function versioncontrol_git_uninstall() {
126 // Make sure we can access the required functions even from the .install file.
127 include_once(drupal_get_path('module', 'versioncontrol') .'/versioncontrol.module');
128 include_once(drupal_get_path('module', 'versioncontrol_git') .'/versioncontrol_git.module');
130 if (db_table_exists('versioncontrol_repositories')) {
131 $result = db_query("SELECT repo_id FROM {versioncontrol_repositories}
133 while ($repository = db_fetch_array($result)) {
134 versioncontrol_delete_repository($repository);
138 db_query('DROP TABLE {versioncontrol_git_accounts}');
139 db_query('DROP TABLE {versioncontrol_git_repositories}');
140 db_query('DROP TABLE {versioncontrol_git_commits}');
141 db_query('DROP TABLE {versioncontrol_git_item_revisions}');
142 db_query('DROP TABLE {versioncontrol_git_item_tags}');
143 db_query('DROP TABLE {versioncontrol_git_item_branch_points}');