@@ -62,20 +62,19 @@ def __init__(self, path=None):
6262
6363 self .git = Git (self .wd )
6464
65- @ property
66- def description (self ):
67- """
68- The project's description. Taken verbatim from GIT_REPO/description
65+ # Description property
66+ def _get_description (self ):
67+ filename = os . path . join ( self . path , 'description' )
68+ return file ( filename ). read (). rstrip ()
6969
70- Returns
71- str
72- """
73- try :
74- f = open (os .path .join (self .path , 'description' ))
75- result = f .read ()
76- return result .rstrip ()
77- finally :
78- f .close ()
70+ def _set_description (self , descr ):
71+ filename = os .path .join (self .path , 'description' )
72+ file (filename , 'w' ).write (descr + '\n ' )
73+
74+ description = property (_get_description , _set_description ,
75+ doc = "the project's description" )
76+ del _get_description
77+ del _set_description
7978
8079 @property
8180 def heads (self ):
@@ -199,24 +198,22 @@ def commit_deltas_from(self, other_repo, ref = 'master', other_ref = 'master'):
199198 diff_refs = list (set (other_repo_refs ) - set (repo_refs ))
200199 return map (lambda ref : Commit .find_all (other_repo , ref , max_count = 1 )[0 ], diff_refs )
201200
202- def tree (self , treeish = 'master' , paths = [] ):
201+ def tree (self , treeish = 'master' ):
203202 """
204203 The Tree object for the given treeish reference
205204
206205 ``treeish``
207206 is the reference (default 'master')
208- ``paths``
209- is an optional Array of directory paths to restrict the tree (default [])
210207
211208 Examples::
212209
213- repo.tree('master', ['lib/'] )
210+ repo.tree('master')
214211
215212
216213 Returns
217214 ``GitPython.Tree``
218215 """
219- return Tree . construct (self , treeish , paths )
216+ return Tree (self , id = treeish )
220217
221218 def blob (self , id ):
222219 """
@@ -377,25 +374,22 @@ def archive_tar_gz(self, treeish = 'master', prefix = None):
377374 kwargs ['prefix' ] = prefix
378375 self .git .archive (treeish , "| gzip" , ** kwargs )
379376
380- def enable_daemon_serve (self ):
381- """
382- Enable git-daemon serving of this repository by writing the
383- git-daemon-export-ok file to its git directory
384-
385- Returns
386- None
387- """
388- touch (os .path .join (self .path , DAEMON_EXPORT_FILE ))
389-
390- def disable_daemon_serve (self ):
391- """
392- Disable git-daemon serving of this repository by ensuring there is no
393- git-daemon-export-ok file in its git directory
394-
395- Returns
396- None
397- """
398- return os .remove (os .path .join (self .path , DAEMON_EXPORT_FILE ))
377+ def _get_daemon_export (self ):
378+ filename = os .path .join (self .path , self .DAEMON_EXPORT_FILE )
379+ return os .path .exists (filename )
380+
381+ def _set_daemon_export (self , value ):
382+ filename = os .path .join (self .path , self .DAEMON_EXPORT_FILE )
383+ fileexists = os .path .exists (filename )
384+ if value and not fileexists :
385+ touch (filename )
386+ elif not value and fileexists :
387+ os .unlink (filename )
388+
389+ daemon_export = property (_get_daemon_export , _set_daemon_export ,
390+ doc = "git-daemon export of this repository" )
391+ del _get_daemon_export
392+ del _set_daemon_export
399393
400394 def _get_alternates (self ):
401395 """
0 commit comments