Changeset - 25b10f9d23b4
[Not reviewed]
beta
0 1 0
Marcin Kuzminski - 13 years ago 2012-09-06 00:03:29
marcin@python-works.com
Fixed mercurial backend doesn't take bare parameter when forking
1 file changed with 13 insertions and 3 deletions:
0 comments (0 inline, 0 general)
rhodecode/lib/celerylib/tasks.py
Show inline comments
 
@@ -379,51 +379,61 @@ def create_repo_fork(form_data, cur_user
 
    repo_type = form_data['repo_type']
 
    description = form_data['description']
 
    owner = cur_user
 
    private = form_data['private']
 
    clone_uri = form_data.get('clone_uri')
 
    repos_group = form_data['repo_group']
 
    landing_rev = form_data['landing_rev']
 
    copy_fork_permissions = form_data.get('copy_permissions')
 
    fork_of = RepoModel(DBS)._get_repo(form_data.get('fork_parent_id'))
 

	
 
    fork_repo = RepoModel(DBS).create_repo(
 
        fork_name, repo_type, description, owner, private, clone_uri,
 
        repos_group, landing_rev, just_db=True, fork_of=fork_of,
 
        copy_fork_permissions=copy_fork_permissions
 
    )
 

	
 
    update_after_clone = form_data['update_after_clone']
 

	
 
    source_repo_path = os.path.join(base_path, fork_of.repo_name)
 
    destination_fork_path = os.path.join(base_path, fork_name)
 

	
 
    log.info('creating fork of %s as %s', source_repo_path,
 
             destination_fork_path)
 
    backend = get_backend(repo_type)
 
    backend(safe_str(destination_fork_path), create=True,
 
            src_url=safe_str(source_repo_path),
 
            update_after_clone=update_after_clone, bare=True)
 

	
 
    if repo_type == 'git':
 
        backend(safe_str(destination_fork_path), create=True,
 
                src_url=safe_str(source_repo_path),
 
                update_after_clone=update_after_clone,
 
                bare=True)
 
    elif repo_type == 'hg':
 
        backend(safe_str(destination_fork_path), create=True,
 
                src_url=safe_str(source_repo_path),
 
                update_after_clone=update_after_clone)
 
    else:
 
        raise Exception('Unknown backend type %s' % repo_type)
 

	
 
    log_create_repository(fork_repo.get_dict(), created_by=cur_user.username)
 

	
 
    action_logger(cur_user, 'user_forked_repo:%s' % fork_name,
 
                   fork_of.repo_name, '', DBS)
 

	
 
    action_logger(cur_user, 'user_created_fork:%s' % fork_name,
 
                   fork_name, '', DBS)
 
    # finally commit at latest possible stage
 
    DBS.commit()
 

	
 

	
 
def __get_codes_stats(repo_name):
 
    from rhodecode.config.conf import  LANGUAGES_EXTENSIONS_MAP
 
    repo = Repository.get_by_repo_name(repo_name).scm_instance
 

	
 
    tip = repo.get_changeset()
 
    code_stats = {}
 

	
 
    def aggregate(cs):
 
        for f in cs[2]:
 
            ext = lower(f.extension)
 
            if ext in LANGUAGES_EXTENSIONS_MAP.keys() and not f.is_binary:
 
                if ext in code_stats:
 
                    code_stats[ext] += 1
0 comments (0 inline, 0 general)