Project

General

Profile

Actions

Defect #14361

closed

Mercurial commit ids are short (12 digits) on database

Added by Claudio Bley over 11 years ago. Updated almost 11 years ago.

Status:
Closed
Priority:
Normal
Assignee:
Toshi MARUYAMA
Category:
SCM
Target version:
Start date:
Due date:
% Done:

100%

Estimated time:
Resolution:
Fixed
Affected version:

Description

I'm using redmine 2.3.1 and configured a Mercurial repository.

Referring to a commit with the changeset id (a 40 digit hexadecimal number) redmine does not render this as a link.

Furthermore, loading projects/$p/repository/revisions/$changeset_id just gives a 404 "The entry or revision was not found in the repository." error.

Of course, the commit does exist in the repo.

select scmid from changesets; only gives the short-form ID, well, unsurprisingly.

To quote http://mercurial.selenic.com/wiki/ChangeSetID

Note: a short-form ID can start out valid, but become invalid because another changeset with the same prefix shows up later on. Do not use short-form IDs for long-lived representations. You can use the --debug option to display the full changeset ID.


Files

long-node.diff (5.22 KB) long-node.diff Toshi MARUYAMA, 2013-06-26 17:25
long-node-v2.diff (8.71 KB) long-node-v2.diff Toshi MARUYAMA, 2013-06-26 19:36
redmine_hg_long_ids_tests.diff (10.9 KB) redmine_hg_long_ids_tests.diff Claudio Bley, 2014-01-31 16:33
Actions #1

Updated by Toshi MARUYAMA over 11 years ago

  • Subject changed from hg commit ids not supported to Mercurial commit ids are short (12 chars) on database
Actions #2

Updated by Toshi MARUYAMA over 11 years ago

  • Target version set to 2.4.0
Actions #3

Updated by Toshi MARUYAMA over 11 years ago

Try this patch.

Actions #4

Updated by Toshi MARUYAMA over 11 years ago

This patch fixes some bugs of previous patch.

Actions #5

Updated by Claudio Bley over 11 years ago

  • Status changed from New to Resolved

Toshi MARUYAMA wrote:

This patch fixes some bugs of previous patch.

It works great. Thank you very much!

One last thing though, would it be possible to shorten the link text to 12 (or even less) chars when on display? Maybe display it like

5cc4b7a919f5…

As a human a 40 chars hex number is just not something one can grasp, usually.

For example git uses 7 digits by default (more when there's a conflict), and bitbucket also displays 7 digits in its web interface.

Should I add a new ticket about this?

Thanks, again.

Actions #6

Updated by Mischa The Evil over 11 years ago

  • Status changed from Resolved to Confirmed

Correcting status; this is not yet committed.

Actions #7

Updated by Jean-Philippe Lang about 11 years ago

  • Assignee set to Toshi MARUYAMA

Toshi, should we commit this for 2.4.0?

Actions #8

Updated by Toshi MARUYAMA about 11 years ago

  • Target version deleted (2.4.0)

Jean-Philippe Lang wrote:

Toshi, should we commit this for 2.4.0?

Sorry, I don't have a time.

Actions #9

Updated by Toshi MARUYAMA about 11 years ago

My patch breaks some tests and need to add more tests.

Actions #10

Updated by Jean-Philippe Lang about 11 years ago

OK no problem, thanks.

Actions #11

Updated by Claudio Bley almost 11 years ago

Hi.

Just wanted to check in on you whether you made some progress on this one?

I tried the patch on the latest release and it still applies perfectly.

I'm attaching a patch which removes one minor nit and also fixes all the failing tests.

Hope you get to include this into the next release... :)

Cheers.

Actions #12

Updated by Toshi MARUYAMA almost 11 years ago

  • Subject changed from Mercurial commit ids are short (12 chars) on database to Mercurial commit ids are short (12 digits) on database
Actions #13

Updated by Toshi MARUYAMA almost 11 years ago

  • Target version set to 2.5.0
  • % Done changed from 0 to 100
Actions #14

Updated by Jean-Philippe Lang almost 11 years ago

Toshi, can we close this one?

Actions #15

Updated by Toshi MARUYAMA almost 11 years ago

  • Status changed from Confirmed to Closed
  • Resolution set to Fixed

In repository which created before 2.4, commit id length keeps 12 digits.
New repository which created after 2.5, commit id length is full (40 digits).

Actions

Also available in: Atom PDF