แž€แžถแžšแž…แŸแž‰แž•แŸ’แžŸแžถแž™แž”แŸ’แžšแž–แŸแž“แŸ’แž’แž‚แŸ’แžšแž”แŸ‹แž‚แŸ’แžšแž„แž‚แž˜แŸ’แžšแŸ„แž„ Trac 1.4

แžŽแŸ‚แž“แžถแŸ† แž€แžถแžšแž…แŸแž‰แž•แŸ’แžŸแžถแž™แžŠแŸแžŸแŸ†แžแžถแž“แŸ‹แž“แŸƒแž”แŸ’แžšแž–แŸแž“แŸ’แž’แž‚แŸ’แžšแž”แŸ‹แž‚แŸ’แžšแž„แž‚แž˜แŸ’แžšแŸ„แž„ แžแŸ’แžšแžถ แŸฃแŸ แŸ แŸ แžŠแŸ‚แž›แž•แŸ’แžแž›แŸ‹แž“แžผแžœแž…แŸ†แžŽแžปแž…แž”แŸ’แžšแž‘แžถแž€แŸ‹แž”แžŽแŸ’แžŠแžถแž‰แžŸแž˜แŸ’แžšแžถแž”แŸ‹แž’แŸ’แžœแžพแž€แžถแžšแž‡แžถแž˜แžฝแž™ Subversion แž“แžทแž„ Git repositories แžœแžทแž‚แžธแžŠแŸ‚แž›แž—แŸ’แž‡แžถแž”แŸ‹แž˜แž€แž‡แžถแž˜แžฝแž™ แž”แŸ’แžšแž–แŸแž“แŸ’แž’แžแžถแž˜แžŠแžถแž“แž”แž‰แŸ’แž แžถ แž“แžทแž„แž•แŸ’แž“แŸ‚แž€แž’แŸ’แžœแžพแž•แŸ‚แž“แž€แžถแžšแž˜แžปแžแž„แžถแžšแžŸแž˜แŸ’แžšแžถแž”แŸ‹แž€แŸ†แžŽแŸ‚แžแŸ’แž˜แžธแŸ” แž€แžผแžŠแžแŸ’แžšแžผแžœแž”แžถแž“แžŸแžšแžŸแŸแžšแž‡แžถ Python แž“แžทแž„ แž…แŸ‚แž€แž…แžถแž™โ€‹แžŠแŸ„แž™ แž€แŸ’แžšแŸ„แž˜แžขแžถแž‡แŸ’แž‰แžถแž”แŸแžŽแŸ’แžŽ BSD แŸ” SQLite, PostgreSQL แž“แžทแž„ MySQL/MariaDB DBMS แžขแžถแž…แžแŸ’แžšแžผแžœแž”แžถแž“แž”แŸ’แžšแžพแžŠแžพแž˜แŸ’แž”แžธแžšแž€แŸ’แžŸแžถแž‘แžปแž€แž‘แžทแž“แŸ’แž“แž“แŸแž™แŸ”

Trac แž”แŸ’แžšแžพแžœแžทแž’แžธแžŸแžถแžŸแŸ’แžšแŸ’แžแžแžทแž…แžแžฝแž…แž”แŸ†แž•แžปแžแž€แŸ’แž“แžปแž„แž€แžถแžšแž‚แŸ’แžšแž”แŸ‹แž‚แŸ’แžšแž„แž‚แž˜แŸ’แžšแŸ„แž„ แž“แžทแž„แžขแž“แžปแž‰แŸ’แž‰แžถแžแžฑแŸ’แž™แžขแŸ’แž“แž€แž’แŸ’แžœแžพแžŸแŸ’แžœแŸแž™แž”แŸ’แžšแžœแžแŸ’แžแžทแž€แž˜แŸ’แž˜แž”แŸ’แžšแžแžทแž”แžแŸ’แžแžทแž€แžถแžšแž’แž˜แŸ’แž˜แžแžถแžŠแŸ„แž™แž˜แžถแž“แžฅแž‘แŸ’แž’แžทแž–แž›แžแžทแž…แžแžฝแž…แž›แžพแžŠแŸ†แžŽแžพแžšแž€แžถแžš แž“แžทแž„แž…แŸ’แž”แžถแž”แŸ‹แžŠแŸ‚แž›แž”แžถแž“แž”แž„แŸ’แž€แžพแžแžกแžพแž„แžšแžฝแž…แž แžพแž™แž€แŸ’แž“แžปแž„แž…แŸ†แžŽแŸ„แž˜แžขแŸ’แž“แž€แžขแž—แžทแžœแžŒแŸ’แžแž“แŸแŸ” แž˜แŸ‰แžถแžŸแŸŠแžธแž“แžœแžทแž‚แžธแžŠแŸ‚แž›แž—แŸ’แž‡แžถแž”แŸ‹แž˜แž€แž‡แžถแž˜แžฝแž™แž’แŸ’แžœแžพแžฑแŸ’แž™แžœแžถแžขแžถแž…แž”แŸ’แžšแžพแž€แžถแžšแžŸแž˜แŸ’แž‚แžถแž›แŸ‹แžœแžทแž‚แžธแž“แŸ…แž€แŸ’แž“แžปแž„แž€แžถแžšแž–แžทแž–แžŽแŸŒแž“แžถแžขแŸ†แž–แžธแž”แž‰แŸ’แž แžถ แž‚แŸ„แž›แžŠแŸ… แž“แžทแž„แž€แžถแžšแž”แŸ’แžแŸแž‡แŸ’แž‰แžถแž…แžทแžแŸ’แžแŸ” แžœแžถแž‚แžถแŸ†แž‘แŸ’แžšแž€แžถแžšแž”แž„แŸ’แž€แžพแžแžแŸ†แžŽแž—แŸ’แž‡แžถแž”แŸ‹ แž“แžทแž„แžšแŸ€แž”แž…แŸ†แž€แžถแžšแžแž—แŸ’แž‡แžถแž”แŸ‹แžšแžœแžถแž„แžŸแžถแžšแž€แŸ†แž แžปแžŸ แž—แžถแžšแž€แžทแž…แŸ’แž… แž€แžถแžšแž•แŸ’แž›แžถแžŸแŸ‹แž”แŸ’แžแžผแžšแž€แžผแžŠ แžฏแž€แžŸแžถแžš แž“แžทแž„แž‘แŸ†แž–แŸแžšแžœแžทแž‚แžธแŸ” แžŠแžพแž˜แŸ’แž”แžธแžแžถแž˜แžŠแžถแž“แž–แŸ’แžšแžนแžแŸ’แžแžทแž€แžถแžšแžŽแŸ แž“แžทแž„แžŸแž€แž˜แŸ’แž˜แž—แžถแž–แž‘แžถแŸ†แž„แžขแžŸแŸ‹แž“แŸ…แž€แŸ’แž“แžปแž„แž‚แž˜แŸ’แžšแŸ„แž„ แž…แŸ†แžŽแžปแž…แž”แŸ’แžšแž‘แžถแž€แŸ‹แž˜แžฝแž™แž€แŸ’แž“แžปแž„แž‘แž˜แŸ’แžšแž„แŸ‹แž‡แžถแž”แž“แŸ’แž‘แžถแžแŸ‹แž–แŸแž›แžœแŸแž›แžถแžแŸ’แžšแžผแžœแž”แžถแž“แž•แŸ’แžแž›แŸ‹แž‡แžผแž“แŸ”

แž“แŸ…แž€แŸ’แž“แžปแž„แžšแžผแž”แžšแžถแž„แžšแž”แžŸแŸ‹ แž€แž˜แŸ’แž˜แžœแžทแž’แžธแž‡แŸ†แž“แžฝแž™ แž˜แŸ‰แžผแžŒแžปแž›แž˜แžถแž“แžŸแž˜แŸ’แžšแžถแž”แŸ‹แžšแž€แŸ’แžŸแžถแž–แŸแžแŸŒแž˜แžถแž“ แž”แž„แŸ’แž€แžพแžแžœแŸแž‘แžทแž€แžถแž–แžทแž—แžถแž€แŸ’แžŸแžถ แž’แŸ’แžœแžพแž€แžถแžšแžŸแŸ’แž‘แž„แŸ‹แž˜แžแžท แžขแž“แŸ’แžแžšแž€แž˜แŸ’แž˜แž‡แžถแž˜แžฝแž™แž”แŸ’แžšแž–แŸแž“แŸ’แž’แžšแžฝแž˜แž”แž‰แŸ’แž…แžผแž›แž‡แžถแž”แž“แŸ’แžแž”แž“แŸ’แž‘แžถแž”แŸ‹แž•แŸ’แžŸแŸแž„แŸ— แž”แž„แŸ’แž€แžพแžแžฏแž€แžŸแžถแžšแž€แŸ’แž“แžปแž„ Doxygen แž‚แŸ’แžšแž”แŸ‹แž‚แŸ’แžšแž„แž€แžถแžšแž‘แžถแž‰แž™แž€ แž•แŸ’แž‰แžพแž€แžถแžšแž‡แžผแž“แžŠแŸ†แžŽแžนแž„แžแžถแž˜แžšแž™แŸˆ Slack แž‚แžถแŸ†แž‘แŸ’แžšแž€แžถแžšแžœแžทแž‘แŸ’แž’แž„แŸ’แžŸแž“แžถ แž“แžทแž„ Mercurial แŸ”

แž€แžถแžšแž•แŸ’แž›แžถแžŸแŸ‹แž”แŸ’แžแžผแžšแž…แž˜แŸ’แž”แž„แž”แžพแž”แŸ’แžšแŸ€แž”แž’แŸ€แž”แž‘แŸ…แž“แžนแž„แžŸแžถแžแžถแžŠแŸ‚แž›แž˜แžถแž“แžŸแŸ’แžแŸแžšแž—แžถแž– 1.2:

  • แž”แŸ’แžแžผแžšแž‘แŸ…แž€แžถแžšแž”แž„แŸ’แž แžถแž‰แžŠแŸ„แž™แž”แŸ’แžšแžพแž˜แŸ‰แžถแžŸแŸŠแžธแž“แž‚แŸ†แžšแžผแž›แžฟแž“ Jinja แŸข. แž˜แŸ‰แžถแžŸแŸŠแžธแž“แž‚แŸ†แžšแžผแžŠแŸ‚แž›แž˜แžถแž“แž˜แžผแž›แžŠแŸ’แž‹แžถแž“แž›แžพ XML Genshi แžแŸ’แžšแžผแžœแž”แžถแž“แž”แžŠแžทแžŸแŸแž’ แž”แŸ‰แžปแž“แŸ’แžแŸ‚แžŸแž˜แŸ’แžšแžถแž”แŸ‹แž แŸแžแžปแž•แž›แž“แŸƒแž—แžถแž–แž†แž”แž‚แŸ’แž“แžถแž‡แžถแž˜แžฝแž™แž“แžนแž„แž€แž˜แŸ’แž˜แžœแžทแž’แžธแž‡แŸ†แž“แžฝแž™แžŠแŸ‚แž›แž˜แžถแž“แžŸแŸ’แžšแžถแž”แŸ‹ แžœแžถแž“แžนแž„แžแŸ’แžšแžผแžœแž”แžถแž“แž™แž€แž…แŸแž‰แžแŸ‚แž“แŸ…แž€แŸ’แž“แžปแž„แžŸแžถแžแžถ 1.5 แžŠแŸ‚แž›แž˜แžทแž“แžŸแŸ’แžแžทแžแžŸแŸ’แžแŸแžšแŸ”
  • แž—แžถแž–แž†แž”แž‚แŸ’แž“แžถแžแž™แž€แŸ’แžšแŸ„แž™แž‡แžถแž˜แžฝแž™แž€แž˜แŸ’แž˜แžœแžทแž’แžธแž‡แŸ†แž“แžฝแž™แžŠแŸ‚แž›แž”แžถแž“แžŸแžšแžŸแŸแžšแžŸแž˜แŸ’แžšแžถแž”แŸ‹แž€แŸ†แžŽแŸ‚ Trac แž˜แžปแž“แž–แŸแž› 1.0 แžแŸ’แžšแžผแžœแž”แžถแž“แž”แž‰แŸ’แžˆแž”แŸ‹แŸ” แž€แžถแžšแž•แŸ’แž›แžถแžŸแŸ‹แž”แŸ’แžแžผแžšแž—แžถแž‚แž…แŸ’แžšแžพแž“แž”แŸ‰แŸ‡แž–แžถแž›แŸ‹แžŠแž›แŸ‹แž…แŸ†แžŽแžปแž…แž”แŸ’แžšแž‘แžถแž€แŸ‹แžŸแž˜แŸ’แžšแžถแž”แŸ‹แž€แžถแžšแž…แžผแž›แž”แŸ’แžšแžพแž˜แžผแž›แžŠแŸ’แž‹แžถแž“แž‘แžทแž“แŸ’แž“แž“แŸแž™แŸ”
  • แž€แŸ’แžšแžปแž˜แžขแŸ’แž“แž€แž”แŸ’แžšแžพแž”แŸ’แžšแžถแžŸแŸ‹แžŠแŸ‚แž›แž”แžถแž“แž›แžพแž€แžกแžพแž„แž“แŸ…แž€แŸ’แž“แžปแž„แžœแžถแž› CC แžแŸ’แžšแžผแžœแž”แžถแž“แž–แž„แŸ’แžšแžธแž€แžŠแŸ„แž™แžŸแŸ’แžœแŸแž™แž”แŸ’แžšแžœแžแŸ’แžแžทแž‘แŸ…แž€แŸ’แž“แžปแž„แž”แž‰แŸ’แž‡แžธแžขแŸ’แž“แž€แž”แŸ’แžšแžพแž”แŸ’แžšแžถแžŸแŸ‹แžŠแŸ‚แž›แžšแžฝแž˜แž”แž‰แŸ’แž…แžผแž›แž€แŸ’แž“แžปแž„แž€แŸ’แžšแžปแž˜แž“แŸ„แŸ‡แŸ”
  • แž‘แŸ†แž–แŸแžšแžœแžทแž‚แžธแžแŸ’แžšแžผแžœแž”แžถแž“แž”แŸ†แž–แžถแž€แŸ‹แžŠแŸ„แž™แž€แžถแžšแž•แŸ’แž›แžถแžŸแŸ‹แž”แŸ’แžแžผแžšแžšแžœแžถแž„แžšแž”แŸ€แž”แžแžผแž…แž…แž„แŸ’แžขแŸ€แž แž“แžทแž„แž–แŸแž‰แžขแŸแž€แŸ’แžšแž„แŸ‹แžŸแž˜แŸ’แžšแžถแž”แŸ‹แž€แžถแžšแž˜แžพแž›แžขแžแŸ’แžแž”แž‘แŸ”
  • แž€แŸ’แž“แžปแž„โ€‹แž‚แŸ†แžšแžผโ€‹แž€แžถแžšโ€‹แž‡แžผแž“โ€‹แžŠแŸ†แžŽแžนแž„โ€‹แžแžถแž˜โ€‹แž”แŸ’แžšแŸƒแžŸแžŽแžธแž™แŸ แžฅแžกแžผแžœโ€‹แž“แŸแŸ‡โ€‹แžœแžถโ€‹แžขแžถแž…โ€‹แž”แŸ’แžšแžพโ€‹แž‘แžทแž“แŸ’แž“แž“แŸแž™โ€‹แžขแŸ†แž–แžธโ€‹แž€แžถแžšโ€‹แž•แŸ’แž›แžถแžŸแŸ‹โ€‹แž”แŸ’แžแžผแžšโ€‹แž€แŸ’แž“แžปแž„โ€‹แž”แŸ’แžšแžขแž”แŸ‹โ€‹แžŸแŸ†แž”แžปแžแŸ’แžš (โ€œchanges.fieldsโ€)แŸ”
  • แž€แžถแžšแž˜แžพแž›แž‡แžถแž˜แžปแž“แžŠแŸ„แž™แžŸแŸ’แžœแŸแž™แž”แŸ’แžšแžœแžแŸ’แžแžทแž“แŸƒแžขแžแŸ’แžแž”แž‘แžŠแŸ‚แž›แž˜แžถแž“แž‘แž˜แŸ’แžšแž„แŸ‹แžœแžทแž‚แžธแžแŸ’แžšแžผแžœแž”แžถแž“แžขแž“แžปแžœแžแŸ’แžแžŸแž˜แŸ’แžšแžถแž”แŸ‹แžœแžถแž›แžŸแŸ’แžแž„แŸ‹แžŠแžถแžšแž‘แžถแŸ†แž„แžขแžŸแŸ‹ (แžงแž‘แžถแž แžšแžŽแŸ แž€แžถแžšแž–แžทแž–แžŽแŸŒแž“แžถแžšแž”แžถแž™แž€แžถแžšแžŽแŸ)แŸ” แžขแŸ’แž“แž€แž”แŸ’แžšแžพแž”แŸ’แžšแžถแžŸแŸ‹แž€แŸแžขแžถแž…แž€แŸ†แžŽแžแŸ‹แžŠแŸ„แž™แžฏแž€แžšแžถแž‡แŸ’แž™แž“แžผแžœแž–แŸแž›แžœแŸแž›แžถแžšแž„แŸ‹แž…แžถแŸ†แžšแžœแžถแž„แž€แžถแžšแž”แž‰แŸ’แžˆแž”แŸ‹แž€แžถแžšแž”แž‰แŸ’แž…แžผแž› แž“แžทแž„แž€แžถแžšแžขแžถแž”แŸ‹แžŠแŸแžแž•แŸ’แž‘แŸƒแž˜แžพแž›แž‡แžถแž˜แžปแž“แž•แž„แžŠแŸ‚แžšแŸ”
  • TracMigratePlugin แž”แžถแž“แž€แŸ’แž›แžถแž™แž‡แžถแž•แŸ’แž“แŸ‚แž€แž˜แžฝแž™แž“แŸƒ Trac แž แžพแž™แžขแžถแž…แž”แŸ’แžšแžพแž”แžถแž“แž‡แžถแž–แžถแž€แŸ’แž™แž”แž‰แŸ’แž‡แžถ trac-admin convert_db แŸ” แžขแž“แžปแž‰แŸ’แž‰แžถแžแžฑแŸ’แž™แž™แžพแž„แžšแŸ†แž›แžนแž€แžขแŸ’แž“แž€แžแžถแž€แž˜แŸ’แž˜แžœแžทแž’แžธแž‡แŸ†แž“แžฝแž™แž“แŸแŸ‡แžขแž“แžปแž‰แŸ’แž‰แžถแžแžฑแŸ’แž™แžขแŸ’แž“แž€แž•แŸ’แž‘แŸแžšแž‘แžทแž“แŸ’แž“แž“แŸแž™แž‚แž˜แŸ’แžšแŸ„แž„ Trac แžšแžœแžถแž„แž˜แžผแž›แžŠแŸ’แž‹แžถแž“แž‘แžทแž“แŸ’แž“แž“แŸแž™แž•แŸ’แžŸแŸแž„แŸ—แž‚แŸ’แž“แžถ (แžงแž‘แžถแž แžšแžŽแŸ SQLite โ†’ PostgreSQL) แŸ” แžขแŸ’แž“แž€แž€แŸแžขแžถแž…แž€แžแŸ‹แžŸแž˜แŸ’แž‚แžถแž›แŸ‹แžšแžผแž”แžšแžถแž„แž“แŸƒแžŸแŸ†แž”แžปแžแŸ’แžš delete_comment แž“แžทแž„แž–แžถแž€แŸ’แž™แž”แž‰แŸ’แž‡แžถแžšแž„แž•แŸ’แž›แžถแžŸแŸ‹แž‘แžธแžฏแž€แžŸแžถแžšแž—แŸ’แž‡แžถแž”แŸ‹แŸ”
  • แžœแžถแž›แžขแžแŸ’แžแž”แž‘แž•แŸ’แž‘แžถแž›แŸ‹แžแŸ’แž›แžฝแž“แžฅแžกแžผแžœแž“แŸแŸ‡แž˜แžถแž“แž‚แžปแžŽแž›แž€แŸ’แžแžŽแŸˆ max_size แŸ”
  • แž€แžถแžšแž‚แžถแŸ†แž‘แŸ’แžšแžŸแž˜แŸ’แžšแžถแž”แŸ‹แžŸแŸ†แž”แžปแžแŸ’แžšแž€แŸ’แž›แžผแž“ (แž€แŸแžŠแžผแž…แž‡แžถแž€แžถแžšแž”แž„แŸ’แž€แžพแžแžŸแŸ†แž”แžปแžแŸ’แžšแž–แžธแž˜แžแžทแž™แŸ„แž”แž›แŸ‹) แžแžถแž˜แžšแž™แŸˆแžŸแž˜แžถแžŸแž’แžถแžแžปแžŸแŸ’แžšแŸแž…แž…แžทแžแŸ’แž tracopt.ticket.clone
  • แžœแžถแžขแžถแž…แž‘แŸ…แžšแžฝแž…แž€แŸ’แž“แžปแž„แž€แžถแžšแž”แž“แŸ’แžแŸ‚แž˜แžแŸ†แžŽแž•แŸ’แž‘แžถแž›แŸ‹แžแŸ’แž›แžฝแž“แž‘แŸ…แž”แž‹แž˜แž€แžแžถแžšแžปแž€แžšแž€แžŠแŸ„แž™แž”แŸ’แžšแžพแžงแž”แž€แžšแžŽแŸแžŸแŸ’แžแž„แŸ‹แžŠแžถแžšแŸ”
  • แžœแžทแžŸแžถแž›แž—แžถแž–แž“แŸƒแžŸแžปแž–แž›แž—แžถแž–แž“แŸƒแž€แžถแžšแž•แŸ’แž›แžถแžŸแŸ‹แž”แŸ’แžแžผแžšแžแŸ’แžšแžผแžœแž”แžถแž“แž–แž„แŸ’แžšแžธแž€แž‘แŸ…แžงแž”แž€แžšแžŽแŸแž€แŸ‚แžŸแž˜แŸ’แžšแžฝแž›แž”แžŽแŸ’แžแžปแŸ† แž€แŸแžŠแžผแž…แž‡แžถแžŠแŸ†แžŽแžพแžšแž€แžถแžšแž€แŸ‚แžŸแž˜แŸ’แžšแžฝแž›แž˜แžแžทแž™แŸ„แž”แž›แŸ‹แŸ”
  • แž€แžถแžšแž‚แžถแŸ†แž‘แŸ’แžšแžŸแž˜แŸ’แžšแžถแž”แŸ‹แž€แžถแžšแž”แž˜แŸ’แžšแžพแž˜แžถแžแžทแž€แžถแžแžถแž˜แžšแž™แŸˆ HTTPS แžŠแŸ„แž™แž•แŸ’แž‘แžถแž›แŸ‹แž–แžธ tracd แŸ”
  • แž”แžถแž“แž’แŸ’แžœแžพแž”แž…แŸ’แž…แžปแž”แŸ’แž”แž“แŸ’แž“แž—แžถแž–แžแž˜แŸ’แžšแžผแžœแž€แžถแžšแž€แŸ†แžŽแŸ‚แžขแž”แŸ’แž”แž”แžšแž˜แžถแžŸแž˜แŸ’แžšแžถแž”แŸ‹ Python (2.7 แž‡แŸ†แž“แžฝแžŸแžฑแŸ’แž™ 2.6) แž“แžทแž„ PostgreSQL (แž˜แžทแž“แž…แžถแžŸแŸ‹แž‡แžถแž„ 9.1) แŸ”

แž”แŸ’แžšแž—แž–: opennet.ru

แž”แž“แŸ’แžแŸ‚แž˜แž˜แžแžทแž™แŸ„แž”แž›แŸ‹