Пример #1
0
    def push(self, repo, filename, options):
        from gitbundler.poster.encode import multipart_encode
        from gitbundler.poster.streaminghttp import register_openers

        import urllib2

        register_openers()

        repo = os.path.abspath(repo)
        if not os.path.exists(repo):
            print "error: repo folder %s doesn't existed" %repo
            return
            
        print "Bundle> \n  File  :: %s, git: %s, %s" % (filename, repo, options)
    
        git = GitCmd(filename, repo)
        git.get_branch()
        print git.pull()
        print git.bundle_create(filename, options)
       
        if os.path.exists(os.path.join(repo, filename)):
            print "  Info  :: %s" % git.ls_remote(filename)
            print "  Server:: %s" % self.url
            file = open(os.path.join(repo, filename), "rb")
            params = {'fileName': file}
            datagen, headers = multipart_encode(params)
            headers['gitbundler-user'] = self.user
            headers['gitbundler-password'] = self.password
            request = urllib2.Request(self.url, datagen, headers)
            result = urllib2.urlopen(request)
            print "  Upload:: %s" % result.read()
            file.close()
            os.unlink(os.path.relpath(os.path.join(repo, filename)))
        else:
            print "error: generate git bundle fails."
Пример #2
0
 def pull(self, repo, filename, force_branch):
     import os
     import urllib2
     
     git = GitCmd(filename, repo)
     git.get_branch()
     git.set_force_branch(force_branch)
     
     fileurl = '%s%s' % (self.url, filename)
     
     print 'cmd >> Downloading %s' % fileurl
     
     headers = {}
     headers['gitbundler-user'] = self.user
     headers['gitbundler-password'] = self.password
     
     request = urllib2.Request(fileurl, None, headers)
     server = urllib2.urlopen(request)
     bundle = open(os.path.join(repo, filename), 'wb')
     bundle.write(server.read())
     bundle.close()
     server.close()
     
     if os.path.exists(os.path.join(repo, filename)):
         print "  Info  :: %s" % git.ls_remote(filename)
         print "  Server:: %s" % self.url
         print git.pull_bundle(filename)
         #os.unlink(os.path.relpath(os.path.join(repo, filename)))
     else:
         print "error: git bundle download fails."
Пример #3
0
 def lpush(self, remote, branch=None):
     git = GitCmd(self.filename, self.repo)
     git.get_branch()
     if branch:
         remote_branch = branch
     else:
         remote_branch = git.branch
     
     git.checkout(remote_branch)
     git.execute('pull %s %s' % (remote, remote_branch))