public
Fork of Caged/gitnub
Description: A Gitk-like application written in RubyCocoa that looks like it belongs on a Mac. See the wiki for downloads and screenshots.
Homepage: http://alternateidea.com
Clone URL: git://github.com/kballard/gitnub.git
Search Repo:
Selecting latest now selects the latest commit instead of just going back 
to the first page of commits
Caged (author)
Sun Mar 09 13:55:10 -0700 2008
commit  0e0ed38a0c21df3c9f856cee72d4ee0b9f938f65
tree    99c202a79a1f22c18c7f1de284b28bb551ee3ee4
parent  f2c235a7a170c82a65a2c226700f525aa28c3b50
...
44
45
46
 
 
 
47
 
48
49
50
...
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
 
110
111
112
...
180
181
182
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
183
184
...
44
45
46
47
48
49
50
51
52
53
54
...
62
63
64
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
65
66
67
68
...
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
0
@@ -44,7 +44,11 @@
0
     fetch_commits_for(:master, @offset, @current_commit_offset)
0
     @commits_table.reloadData
0
     
0
+ if tag == 1
0
+ @commits_table.selectRowIndexes_byExtendingSelection(NSIndexSet.indexSetWithIndex(0), false)
0
+ end
0
     
0
+
0
     if @commits.size == 0 || @current_commit_offset == 0
0
       @paging_segment.setEnabled_forSegment(false, 0)
0
       @paging_segment.setEnabled_forSegment(true, 2) unless @commits.size == 0
0
@@ -58,55 +62,7 @@
0
   end
0
   
0
   def tableViewSelectionDidChange(notification)
0
- diffs = []
0
- doc = @commit_details.mainFrame.DOMDocument
0
- set_html("message", active_commit.message)
0
- set_html("hash", active_commit.id)
0
-
0
- if Time.now.day == active_commit.committed_date.day
0
- cdate = active_commit.committed_date.strftime("Today %I:%m %p")
0
- else
0
- cdate = active_commit.committed_date.strftime("%A, %B %d %I:%m %p")
0
- end
0
- set_html("date", cdate)
0
-
0
- file_list = doc.getElementById('files')
0
- diff_list = doc.getElementById('diffs')
0
- diff_list.setInnerHTML("")
0
- file_list.setInnerHTML("")
0
-
0
- active_commit.diffs.each_with_index do |diff, i|
0
- li = doc.createElement('li')
0
- li.setAttribute__('id', "item-#{i}")
0
- li.setAttribute__('class', 'add') if diff.new_file
0
- li.setAttribute__('class', 'delete') if diff.deleted_file
0
- li.setInnerHTML(%(<a href="#diff-#{i}" class="">#{diff.b_path}</a>))
0
- file_list.appendChild(li)
0
-
0
- unless diff.deleted_file
0
- diff_div = doc.createElement('div')
0
- diff_div.setAttribute__('class', 'diff')
0
- diff_div.setAttribute__('id', "diff-#{i}")
0
-
0
- colored_diff = []
0
- html = CGI.escapeHTML(diff.diff)
0
- html.each_line do |line|
0
- if line =~ /^\+{1}/
0
- colored_diff << %(<div class="addline">#{line}</div>)
0
- elsif line =~ /^\-{1}/
0
- colored_diff << %(<div class="removeline">#{line}</div>)
0
- else
0
- colored_diff << line
0
- end
0
- end
0
-
0
- diff_div.setInnerHTML(%(
0
- <h3>#{File.basename(diff.b_path)}</h3>
0
- <pre><code class="diffcode">#{colored_diff}</pre></code>
0
- ))
0
- diff_list.appendChild(diff_div)
0
- end
0
- end
0
+ update_main_document
0
   end
0
   
0
   # DataSource Methods
0
@@ -180,6 +136,60 @@
0
   
0
   def set_html(element, html)
0
     @commit_details.mainFrame.DOMDocument.getElementById(element).setInnerHTML(html)
0
+ end
0
+
0
+ def update_main_document
0
+ diffs = []
0
+ doc = @commit_details.mainFrame.DOMDocument
0
+ set_html("message", active_commit.message)
0
+ set_html("hash", active_commit.id)
0
+
0
+ if Time.now.day == active_commit.committed_date.day
0
+ cdate = active_commit.committed_date.strftime("Today %I:%m %p")
0
+ else
0
+ cdate = active_commit.committed_date.strftime("%A, %B %d %I:%m %p")
0
+ end
0
+ set_html("date", cdate)
0
+
0
+ file_list = doc.getElementById('files')
0
+ diff_list = doc.getElementById('diffs')
0
+ diff_list.setInnerHTML("")
0
+ file_list.setInnerHTML("")
0
+
0
+ active_commit.diffs.each_with_index do |diff, i|
0
+ li = doc.createElement('li')
0
+ li.setAttribute__('id', "item-#{i}")
0
+ li.setAttribute__('class', 'add') if diff.new_file
0
+ li.setAttribute__('class', 'delete') if diff.deleted_file
0
+ li.setInnerHTML(%(<a href="#diff-#{i}" class="">#{diff.b_path}</a>))
0
+ file_list.appendChild(li)
0
+
0
+ unless diff.deleted_file
0
+ diff_div = doc.createElement('div')
0
+ diff_div.setAttribute__('class', 'diff')
0
+ diff_div.setAttribute__('id', "diff-#{i}")
0
+
0
+ colored_diff = []
0
+ html = CGI.escapeHTML(diff.diff)
0
+ html.each_line do |line|
0
+ if line =~ /^\+/
0
+ colored_diff << %(<div class="addline">#{line}</div>)
0
+ elsif line =~ /^\-/
0
+ colored_diff << %(<div class="removeline">#{line}</div>)
0
+ elsif line =~ /^@/
0
+ colored_diff << %(<div class="meta">#{line}</div>)
0
+ else
0
+ colored_diff << line
0
+ end
0
+ end
0
+
0
+ diff_div.setInnerHTML(%(
0
+ <h3>#{File.basename(diff.b_path)}</h3>
0
+ <pre><code class="diffcode">#{colored_diff}</pre></code>
0
+ ))
0
+ diff_list.appendChild(diff_div)
0
+ end
0
+ end
0
   end
0
 end
0
...
1
2
3
4
 
5
6
7
...
1
2
 
 
3
4
5
6
0
@@ -1,7 +1,6 @@
0
 # GitNub - A RubyCocoa app for getting quick information for a git repo. Similar to GitK.
0
  
0
-* Gems Required: mime-types
0
- Other Requirements: Git(duh!), RubyCocoa, Leopard
0
+* Requirements: Git(duh!), RubyCocoa, Leopard
0
 
0
 
0
 # Quick Install
...
32
33
34
35
36
 
 
37
38
39
...
32
33
34
 
 
35
36
37
38
39
0
@@ -32,8 +32,8 @@
0
           PBXFileDataSource_Target_ColumnID,
0
         );
0
       };
0
- PBXPerProjectTemplateStateSaveDate = 226309323;
0
- PBXWorkspaceStateSaveDate = 226309323;
0
+ PBXPerProjectTemplateStateSaveDate = 226716772;
0
+ PBXWorkspaceStateSaveDate = 226716772;
0
     };
0
     sourceControlManager = 284B71420D7CDDCA0075DA6C /* Source Control */;
0
     userBuildSettings = {
...
161
162
163
 
 
 
 
 
164
165
...
161
162
163
164
165
166
167
168
169
170
0
@@ -161,6 +161,11 @@
0
   color: #B00;
0
 }
0
 
0
+.meta {
0
+ background-color: #f7f7f7;
0
+ color: #bbb;
0
+}
0
+
0
 
0
 /* @end */

Comments

    No one has commented yet.