Upgrade to Pro — share decks privately, control downloads, hide ads and more …

RhodeCode(-Enterprise) Intro

RhodeCode(-Enterprise) Intro

#real_dvcs slide.

Takumi IINO

March 31, 2014
Tweet

More Decks by Takumi IINO

Other Decks in Programming

Transcript

  1. RHODECODE(-ENTERPRISE) • GitHub/Bitbucket clone • competition software is GitLab •

    https://rhodecode.com/ • https://code.rhodecode.com/rhodecode- enterprise
  2. FEATURE • Repository hostingʢGit/Mercurialʣ • soruce code browsing • commit

    log, commit graph, Side-by-Side diff • pull-request, inline comment • online editor • Gist • Full text search
  3. FEATURE • User management • permission management by repository groups/user

    groups • authentication(DB, LDAP, PAM, CROWD) • Mention with @ • Journal(Activity) • Web API(JSON-RPC)
  4. MISSING FEATURE • Merge button(in pull-request) • currently in development?

    please wait next release. • Wiki • Issues • CI integration
  5. PROS. • Easy install • CUI/GUI installer is available •

    Stable (for people who are tired to GitLab) • only one running process • git http server is dulwich • Active development
  6. CONS. • License confusing • Active development, but no public

    issue tracker • and no public load map • asking question in an irc channel ! • https://botbot.me/freenode/rhodecode/msg/ 10435654/
  7. LICENSE • ʙ1.7.x GPLv3 • 2.0.0ʙ GPLv3 & Business Source

    License • free for 20 users. free for educational institutions / NGO. • $199+/month for 21+ users • all source code become GPLv3 from 2018/5/1 • at 2013/10/14, all source code become GPLv3 from 2017/09/01. period is extended ?
  8. CASE (1) LANGUAGE • Edit production.ini (can not setting via

    Web UI) • /home/{install-user}/rhodecode/data/production.ini ! ! • Message resources are being managed on transifex.com • https://www.transifex.com/projects/p/RhodeCode/language/ ja/ lang = ja
  9. CASE (2) USING LDAP USER ONLY • Setting via WebUI

    • admin > permission • Registration: Disabled • External auth account activation: Automatic activation of external account • admin > authentication • Enable LDAP
  10. CASE (3) SEND EMAIL VIA GMAIL • Edit production.ini !

    ! ! smtp_server = smtp.gmail.com smtp_username = [email protected] smtp_password = xxxxxxxxxxxx smtp_port = 587 smtp_use_tls = true
  11. CASE (4) LINK TO EXTERNAL WIKI/ISSUES • Edit production.ini !

    ! ! •kind is a link pattern issue_pat_{kind} = issue_server_link_{kind} = issue_prefix_{kind} =
  12. “wiki-FrontPage” that included commit message is converted to a string

    next. ! <a href=“https://mywiki.com/FrontPage”> WIKI-FrontPage </a>
  13. CASE (5) REPOSITORY GROUPING • repository group. • group by

    project • group by user • nested group
  14. CASE (6) TRY DEVELOPING VERSION • Get source code from

    next repository • https://code.rhodecode.com/marcink/rhodecode ! ! ! python setup.py cp development.ini dev.ini vi dev.ini # use sqlite paster setup-rhodecode dev.ini paster serve dev.ini
  15. LIMITATION CAN NOT UPDATE PULL-REQUEST • Can not update ..

    1. title and description 2. comment (new/delete only) 3. changeset (can not add new changeset) • Please wait next release. • Workaround: always create new pull-request.
  16. BUG SAME REIPOSITORY PULL-REQUEST’S DIFF • Git repository only •

    Can not view same repository pull-request’s diff • Example • send pull-request from same repository, • from develop branch to master branch. • Workaround: send pull-request from fork repository.
  17. BUG GIT PUSH —FORCE + PR = 500 ERROR •

    commit unreachable by git push —force. • Implementation problem • find commit by commit id. (current rhodecode implementation) • if can not find commit by commit id, should try to find commit by branch name. (suggestion) • BTW: branch name and commit id are stored to database. (current rhodecode implementation) • is this problem already reported? • Workaround: change branch name and create new pull request • add suffix to branch name. ex. feature/hoge-2, feature/hoge-3 … • git push —force is worse
  18. CONCLUSION • Easy Install • Focus on repository hosting •

    necessary features have all • when can not use external hosting service • for internal mirror server