问题
I just made a commit with my local changes related to revision 448. After that I noticed revision 549, So what's wrong now .... Any Ideas ( Not that is a big of a deal, but I can't explain it and make me wander ...) ?
I did remember making a branch though, that should be the problem I guess but it's kinda strange.
回答1:
Deyan, Alvaro almost hit source of problem, but I'll show it in details. I don't know all internals of GitHub's SVN-bridge, but exposed SVN-side of your repo seems (for pure SVN man) as "cheated", because
- SVN history is linear
- Bigger revision-id must mean "later date of commit"
- Revision-id is autoincrement counter
but
- svn log in range 482:483 seems, well, strange
r484 | deyan.dobromirov | 2015-08-10 10:07:54 +0500 (Пн, 10 авг 2015) ------------------------------------------------------------------------ r483 | deyan.dobromirov | 2015-08-10 10:05:34 +0500 (Пн, 10 авг 2015) ------------------------------------------------------------------------ r482 | deyan.dobromirov | 2015-09-01 13:55:03 +0500 (Вт, 01 сен 2015)
(note dates of 483+ revision before 482)
- with fast eye-search I see some "missing" revisions
r552 | deyan.dobromirov | 2015-09-01 18:36:55 +0500 (Вт, 01 сен 2015) ------------------------------------------------------------------------ r550 | deyan.dobromirov | 2015-09-01 17:49:52 +0500 (Вт, 01 сен 2015) ------------------------------------------------------------------------ r548 | deyan.dobromirov | 2015-09-01 17:49:52 +0500 (Вт, 01 сен 2015)
...
r186 | deyan.dobromirov | 2015-01-28 14:35:30 +0500 (Ср, 28 янв 2015) ------------------------------------------------------------------------ r184 | deyan.dobromirov | 2015-01-28 12:23:56 +0500 (Ср, 28 янв 2015) ------------------------------------------------------------------------
- Github states "284 commits" in single branch master, but SVN think
>svn log -q -r HEAD ------------------------------------------------------------------------ r554 | deyan.dobromirov | 2015-09-01 19:08:39 +0500 (Вт, 01 сен 2015) ------------------------------------------------------------------------
On the rights of delirium: 554 is 284*2 without 14 somehow lost commits
Additional notes: when I cloned your repo with Mercurial (Hg can clone both Git and SVN repos), for Git-source I got 284 commits, as expected, for SVN-source I'm awaiting (in the process, it's long procedure) the same result as it was for SVN-client with SVN-URL: 554
Intermediate preliminary diagnosis
SVN-interface to your repo is hardly broken, you have to inform GitHub tech-support about this issue and ask for help
Further explorations
For "good" GitHub repository, cloning from Git and SVN URLs must provide the same results (the same repos), but your SVN-repo is extremely dirty: a lot of branches (unknown to Git)
lol 543:f585d0a8ee89 (closed)
LuaDB 541:816e1f7df77f (closed)
TimerOsClock 344:a4bf94c50012 (closed)
Timer-os.clock() 343:27e5c55368d8 (closed)
VariableSpace 316:69a4aa153a0c (closed)
GhostAllProps 313:13352bdb9fb0 (closed)
CashePoolTest 183:a90989b79d70 (closed)
a lot of duplicated commit to these ghostly branches (1, 2, 3 on screenshot), non-linear history (totally impossible for SVN): see (only part of) children for r401 (marked with black circles)
Final recommendations
Don't use Github for SVN-projects with a lot of branching in SVN-style blindly, it's bridge become crazy and unpredictable. Github is good for linear SVN-development and, at last but not least, SVN-access is "tool of last resort" for real Git repositories behind the scene, not ready for any hard use-cases
回答2:
Keep in mind revision numbers are global across the entire repository. From the red book:
...revision N represents the state of the repository filesystem after the Nth commit
So, someone or even yourself has made 100 commits to somewhere else in the repository such as the trunk or another branch.
回答3:
If the repository you're talking about is TrackAssemblyTool, the fact that it's hosted at GitHub suggests it's using, well, git as main source control tool. Whatever, there's actually a Subversion repository at that URL which gets exposed if you use a Subversion client to fetch it. Apparently it's a GitHub feature:
GitHub supports Subversion clients via the HTTPS protocol. We use a Subversion bridge to communicate svn commands to GitHub.
Said that, you only need to check the logs:
C:\>svn log -r 448:549 https://github.com/dvdvideo1234/TrackAssemblyTool
------------------------------------------------------------------------
r448 | dvdvideo1234 | 2015-08-25 16:56:04 +0200 (ma., 25 ago. 2015) | 2 lines
test
------------------------------------------------------------------------
r449 | dvdvideo1234 | 2015-08-25 16:56:26 +0200 (ma., 25 ago. 2015) | 2 lines
sdf
------------------------------------------------------------------------
r450 | dvdvideo1234 | 2015-08-25 16:58:20 +0200 (ma., 25 ago. 2015) | 2 lines
go
------------------------------------------------------------------------
r451 | dvdvideo1234 | 2015-08-25 17:00:11 +0200 (ma., 25 ago. 2015) | 2 lines
go
[...]
r546 | deyan.dobromirov | 2015-08-31 22:01:33 +0200 (lu., 31 ago. 2015) | 1 line
Fixed loop bug Works 100%
------------------------------------------------------------------------
r547 | deyan.dobromirov | 2015-09-01 10:55:03 +0200 (ma., 01 sep. 2015) | 1 line
Localizing some functions, updating the Lua table sorting
------------------------------------------------------------------------
r548 | deyan.dobromirov | 2015-09-01 14:49:52 +0200 (ma., 01 sep. 2015) | 3 lines
Shortened the TOOL:LeftClick() better data flow
Changed Cvar abbreviation
Updated Undo custom messages
------------------------------------------------------------------------
You can browse the equivalent git commits with GitHub interface.
If your log was missing revisions, you most likely weren't pointing to the repository root but some other location.
来源:https://stackoverflow.com/questions/32332269/why-does-a-svn-branch-jump-with-100-revisions-difference-after-commit