Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
G
gitlab-ce
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
Boxiang Sun
gitlab-ce
Commits
fc22626f
Commit
fc22626f
authored
Apr 23, 2019
by
Heinrich Lee Yu
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Remove deprecated uses of attribute_changed?
Prepares us for upgrade to Rails 5.2
parent
a2543ee2
Changes
16
Show whitespace changes
Inline
Side-by-side
Showing
16 changed files
with
77 additions
and
66 deletions
+77
-66
app/models/commit_status.rb
app/models/commit_status.rb
+1
-1
app/models/concerns/issuable.rb
app/models/concerns/issuable.rb
+1
-1
app/models/concerns/storage/legacy_namespace.rb
app/models/concerns/storage/legacy_namespace.rb
+8
-8
app/models/merge_request_diff.rb
app/models/merge_request_diff.rb
+9
-2
app/models/namespace.rb
app/models/namespace.rb
+16
-12
app/models/pages_domain.rb
app/models/pages_domain.rb
+2
-2
app/models/project.rb
app/models/project.rb
+2
-2
app/models/remote_mirror.rb
app/models/remote_mirror.rb
+6
-2
app/models/storage/legacy_project.rb
app/models/storage/legacy_project.rb
+1
-1
app/services/projects/update_service.rb
app/services/projects/update_service.rb
+1
-4
app/services/system_hooks_service.rb
app/services/system_hooks_service.rb
+3
-3
app/uploaders/object_storage.rb
app/uploaders/object_storage.rb
+1
-1
db/migrate/20170503140202_turn_nested_groups_into_regular_groups_for_mysql.rb
...40202_turn_nested_groups_into_regular_groups_for_mysql.rb
+0
-7
spec/models/commit_status_spec.rb
spec/models/commit_status_spec.rb
+2
-2
spec/models/namespace_spec.rb
spec/models/namespace_spec.rb
+18
-12
spec/services/system_hooks_service_spec.rb
spec/services/system_hooks_service_spec.rb
+6
-6
No files found.
app/models/commit_status.rb
View file @
fc22626f
...
...
@@ -140,7 +140,7 @@ class CommitStatus < ApplicationRecord
end
def
locking_enabled?
status_changed
?
will_save_change_to_status
?
end
def
before_sha
...
...
app/models/concerns/issuable.rb
View file @
fc22626f
...
...
@@ -117,7 +117,7 @@ module Issuable
# We want to use optimistic lock for cases when only title or description are involved
# http://api.rubyonrails.org/classes/ActiveRecord/Locking/Optimistic.html
def
locking_enabled?
title_changed?
||
description_changed
?
will_save_change_to_title?
||
will_save_change_to_description
?
end
def
allows_multiple_assignees?
...
...
app/models/concerns/storage/legacy_namespace.rb
View file @
fc22626f
...
...
@@ -13,20 +13,20 @@ module Storage
raise
Gitlab
::
UpdatePathError
.
new
(
"Namespace
#{
name
}
(
#{
id
}
) cannot be moved because at least one project (e.g.
#{
proj_with_tags
.
name
}
(
#{
proj_with_tags
.
id
}
)) has tags in container registry"
)
end
parent_was
=
if
parent_changed
?
&&
parent_id_before_last_save
.
present?
parent_was
=
if
saved_change_to_parent
?
&&
parent_id_before_last_save
.
present?
Namespace
.
find
(
parent_id_before_last_save
)
# raise NotFound early if needed
end
move_repositories
if
parent_changed
?
if
saved_change_to_parent
?
former_parent_full_path
=
parent_was
&
.
full_path
parent_full_path
=
parent
&
.
full_path
Gitlab
::
UploadsTransfer
.
new
.
move_namespace
(
path
,
former_parent_full_path
,
parent_full_path
)
Gitlab
::
PagesTransfer
.
new
.
move_namespace
(
path
,
former_parent_full_path
,
parent_full_path
)
else
Gitlab
::
UploadsTransfer
.
new
.
rename_namespace
(
full_path_
was
,
full_path
)
Gitlab
::
PagesTransfer
.
new
.
rename_namespace
(
full_path_
was
,
full_path
)
Gitlab
::
UploadsTransfer
.
new
.
rename_namespace
(
full_path_
before_last_save
,
full_path
)
Gitlab
::
PagesTransfer
.
new
.
rename_namespace
(
full_path_
before_last_save
,
full_path
)
end
# If repositories moved successfully we need to
...
...
@@ -38,7 +38,7 @@ module Storage
write_projects_repository_config
rescue
=>
e
# Raise if development/test environment, else just notify Sentry
Gitlab
::
Sentry
.
track_exception
(
e
,
extra:
{
full_path_
was:
full_path_was
,
full_path:
full_path
,
action:
'move_dir'
})
Gitlab
::
Sentry
.
track_exception
(
e
,
extra:
{
full_path_
before_last_save:
full_path_before_last_save
,
full_path:
full_path
,
action:
'move_dir'
})
end
true
# false would cancel later callbacks but not rollback
...
...
@@ -57,14 +57,14 @@ module Storage
# Move the namespace directory in all storages used by member projects
repository_storages
.
each
do
|
repository_storage
|
# Ensure old directory exists before moving it
gitlab_shell
.
add_namespace
(
repository_storage
,
full_path_
was
)
gitlab_shell
.
add_namespace
(
repository_storage
,
full_path_
before_last_save
)
# Ensure new directory exists before moving it (if there's a parent)
gitlab_shell
.
add_namespace
(
repository_storage
,
parent
.
full_path
)
if
parent
unless
gitlab_shell
.
mv_namespace
(
repository_storage
,
full_path_
was
,
full_path
)
unless
gitlab_shell
.
mv_namespace
(
repository_storage
,
full_path_
before_last_save
,
full_path
)
Rails
.
logger
.
error
"Exception moving path
#{
repository_storage
}
from
#{
full_path_
was
}
to
#{
full_path
}
"
Rails
.
logger
.
error
"Exception moving path
#{
repository_storage
}
from
#{
full_path_
before_last_save
}
to
#{
full_path
}
"
# if we cannot move namespace directory we should rollback
# db changes in order to prevent out of sync between db and fs
...
...
app/models/merge_request_diff.rb
View file @
fc22626f
...
...
@@ -134,7 +134,7 @@ class MergeRequestDiff < ApplicationRecord
# It allows you to override variables like head_commit_sha before getting diff.
after_create
:save_git_content
,
unless: :importing?
after_save
:update_external_diff_store
,
if:
->
{
!
importing?
&&
external_diff_changed
?
}
after_save
:update_external_diff_store
,
if:
->
{
!
importing?
&&
saved_change_to_external_diff
?
}
def
self
.
find_by_diff_refs
(
diff_refs
)
find_by
(
start_commit_sha:
diff_refs
.
start_sha
,
head_commit_sha:
diff_refs
.
head_sha
,
base_commit_sha:
diff_refs
.
base_sha
)
...
...
@@ -154,7 +154,14 @@ class MergeRequestDiff < ApplicationRecord
ensure_commit_shas
save_commits
save_diffs
# Another set of `after_save` hooks will be called here when we update the record
save
# We need to reset so that dirty tracking is reset when running the original set
# of `after_save` hooks that come after this `after_create` hook. Otherwise, the
# hooks that run when an attribute was changed are run twice.
reset
keep_around_commits
end
...
...
@@ -348,7 +355,7 @@ class MergeRequestDiff < ApplicationRecord
has_attribute?
(
:external_diff_store
)
end
def
external_diff_changed
?
def
saved_change_to_external_diff
?
super
if
has_attribute?
(
:external_diff
)
end
...
...
app/models/namespace.rb
View file @
fc22626f
...
...
@@ -63,7 +63,7 @@ class Namespace < ApplicationRecord
# Legacy Storage specific hooks
after_update
:move_dir
,
if: :
path_or_parent_changed
?
after_update
:move_dir
,
if: :
saved_change_to_path_or_parent
?
before_destroy
(
prepend:
true
)
{
prepare_for_destroy
}
after_destroy
:rm_dir
...
...
@@ -144,7 +144,7 @@ class Namespace < ApplicationRecord
def
send_update_instructions
projects
.
each
do
|
project
|
project
.
send_move_instructions
(
"
#{
full_path_
was
}
/
#{
project
.
path
}
"
)
project
.
send_move_instructions
(
"
#{
full_path_
before_last_save
}
/
#{
project
.
path
}
"
)
end
end
...
...
@@ -229,10 +229,6 @@ class Namespace < ApplicationRecord
[
owner_id
]
end
def
parent_changed?
parent_id_changed?
end
# Includes projects from this namespace and projects from all subgroups
# that belongs to this namespace
def
all_projects
...
...
@@ -262,12 +258,12 @@ class Namespace < ApplicationRecord
false
end
def
full_path_
was
if
parent_id_
was
.
nil?
path_
was
def
full_path_
before_last_save
if
parent_id_
before_last_save
.
nil?
path_
before_last_save
else
previous_parent
=
Group
.
find_by
(
id:
parent_id_
was
)
previous_parent
.
full_path
+
'/'
+
path_
was
previous_parent
=
Group
.
find_by
(
id:
parent_id_
before_last_save
)
previous_parent
.
full_path
+
'/'
+
path_
before_last_save
end
end
...
...
@@ -293,7 +289,15 @@ class Namespace < ApplicationRecord
private
def
path_or_parent_changed?
def
parent_changed?
parent_id_changed?
end
def
saved_change_to_parent?
saved_change_to_parent_id?
end
def
saved_change_to_path_or_parent?
saved_change_to_path?
||
saved_change_to_parent_id?
end
...
...
app/models/pages_domain.rb
View file @
fc22626f
...
...
@@ -26,7 +26,7 @@ class PagesDomain < ApplicationRecord
after_initialize
:set_verification_code
after_create
:update_daemon
after_update
:update_daemon
,
if: :
pages_config_changed
?
after_update
:update_daemon
,
if: :
saved_change_to_pages_config
?
after_destroy
:update_daemon
scope
:enabled
,
->
{
where
(
'enabled_until >= ?'
,
Time
.
now
)
}
...
...
@@ -146,7 +146,7 @@ class PagesDomain < ApplicationRecord
end
# rubocop: enable CodeReuse/ServiceClass
def
pages_config_changed
?
def
saved_change_to_pages_config
?
saved_change_to_project_id?
||
saved_change_to_domain?
||
saved_change_to_certificate?
||
...
...
app/models/project.rb
View file @
fc22626f
...
...
@@ -1912,8 +1912,8 @@ class Project < ApplicationRecord
false
end
def
full_path_
was
File
.
join
(
namespace
.
full_path
,
p
revious_changes
[
'path'
].
first
)
def
full_path_
before_last_save
File
.
join
(
namespace
.
full_path
,
p
ath_before_last_save
)
end
alias_method
:name_with_namespace
,
:full_name
...
...
app/models/remote_mirror.rb
View file @
fc22626f
...
...
@@ -22,8 +22,8 @@ class RemoteMirror < ApplicationRecord
before_save
:set_new_remote_name
,
if: :mirror_url_changed?
after_save
:set_override_remote_mirror_available
,
unless:
->
{
Gitlab
::
CurrentSettings
.
current_application_settings
.
mirror_available
}
after_save
:refresh_remote
,
if: :
mirror_url_changed
?
after_update
:reset_fields
,
if: :
mirror_url_changed
?
after_save
:refresh_remote
,
if: :
saved_change_to_mirror_url
?
after_update
:reset_fields
,
if: :
saved_change_to_mirror_url
?
after_commit
:remove_remote
,
on: :destroy
...
...
@@ -265,4 +265,8 @@ class RemoteMirror < ApplicationRecord
def
mirror_url_changed?
url_changed?
||
credentials_changed?
end
def
saved_change_to_mirror_url?
saved_change_to_url?
||
saved_change_to_credentials?
end
end
app/models/storage/legacy_project.rb
View file @
fc22626f
...
...
@@ -30,7 +30,7 @@ module Storage
end
def
rename_repo
(
old_full_path:
nil
,
new_full_path:
nil
)
old_full_path
||=
project
.
full_path_
was
old_full_path
||=
project
.
full_path_
before_last_save
new_full_path
||=
project
.
build_full_path
if
gitlab_shell
.
mv_repository
(
repository_storage
,
old_full_path
,
new_full_path
)
...
...
app/services/projects/update_service.rb
View file @
fc22626f
...
...
@@ -79,10 +79,7 @@ module Projects
end
def
after_rename_service
(
project
)
# The path slug the project was using, before the rename took place.
path_before
=
project
.
previous_changes
[
'path'
].
first
AfterRenameService
.
new
(
project
,
path_before:
path_before
,
full_path_before:
project
.
full_path_was
)
AfterRenameService
.
new
(
project
,
path_before:
project
.
path_before_last_save
,
full_path_before:
project
.
full_path_before_last_save
)
end
def
changing_pages_related_config?
...
...
app/services/system_hooks_service.rb
View file @
fc22626f
...
...
@@ -47,7 +47,7 @@ class SystemHooksService
case
event
when
:rename
data
[
:old_username
]
=
model
.
username_
was
data
[
:old_username
]
=
model
.
username_
before_last_save
when
:failed_login
data
[
:state
]
=
model
.
state
end
...
...
@@ -58,8 +58,8 @@ class SystemHooksService
if
event
==
:rename
data
.
merge!
(
old_path:
model
.
path_
was
,
old_full_path:
model
.
full_path_
was
old_path:
model
.
path_
before_last_save
,
old_full_path:
model
.
full_path_
before_last_save
)
end
when
GroupMember
...
...
app/uploaders/object_storage.rb
View file @
fc22626f
...
...
@@ -117,7 +117,7 @@ module ObjectStorage
next
unless
uploader
next
unless
uploader
.
exists?
next
unless
send
(
:"
#{
mounted_as
}
_changed
?"
)
# rubocop:disable GitlabSecurity/PublicSend
next
unless
send
(
:"
saved_change_to_
#{
mounted_as
}
?"
)
# rubocop:disable GitlabSecurity/PublicSend
mount
end
.
keys
...
...
db/migrate/20170503140202_turn_nested_groups_into_regular_groups_for_mysql.rb
View file @
fc22626f
...
...
@@ -46,13 +46,6 @@ class TurnNestedGroupsIntoRegularGroupsForMysql < ActiveRecord::Migration[4.2]
bulk_insert_members
(
rows
)
# This method relies on the parent to determine the proper path.
# Because we reset "parent_id" this method will not return the right path
# when moving namespaces.
full_path_was
=
namespace
.
send
(
:full_path_was
)
namespace
.
define_singleton_method
(
:full_path_was
)
{
full_path_was
}
namespace
.
update!
(
parent_id:
nil
,
path:
new_path_for
(
namespace
))
end
end
...
...
spec/models/commit_status_spec.rb
View file @
fc22626f
...
...
@@ -449,7 +449,7 @@ describe CommitStatus do
end
it
"lock"
do
is_expected
.
to
be
true
is_expected
.
to
be
_truthy
end
it
"raise exception when trying to update"
do
...
...
@@ -463,7 +463,7 @@ describe CommitStatus do
end
it
"do not lock"
do
is_expected
.
to
be
false
is_expected
.
to
be
_falsey
end
it
"save correctly"
do
...
...
spec/models/namespace_spec.rb
View file @
fc22626f
...
...
@@ -743,22 +743,25 @@ describe Namespace do
end
end
describe
'#full_path_
was
'
do
describe
'#full_path_
before_last_save
'
do
context
'when the group has no parent'
do
it
'returns the path was'
do
group
=
create
(
:group
,
parent:
nil
)
expect
(
group
.
full_path_was
).
to
eq
(
group
.
path_was
)
it
'returns the path before last save'
do
group
=
create
(
:group
)
group
.
update
(
parent:
nil
)
expect
(
group
.
full_path_before_last_save
).
to
eq
(
group
.
path_before_last_save
)
end
end
context
'when a parent is assigned to a group with no previous parent'
do
it
'returns the path
was
'
do
it
'returns the path
before last save
'
do
group
=
create
(
:group
,
parent:
nil
)
parent
=
create
(
:group
)
group
.
parent
=
parent
expect
(
group
.
full_path_was
).
to
eq
(
"
#{
group
.
path_was
}
"
)
group
.
update
(
parent:
parent
)
expect
(
group
.
full_path_before_last_save
).
to
eq
(
"
#{
group
.
path_before_last_save
}
"
)
end
end
...
...
@@ -766,9 +769,10 @@ describe Namespace do
it
'returns the parent full path'
do
parent
=
create
(
:group
)
group
=
create
(
:group
,
parent:
parent
)
group
.
parent
=
nil
expect
(
group
.
full_path_was
).
to
eq
(
"
#{
parent
.
full_path
}
/
#{
group
.
path
}
"
)
group
.
update
(
parent:
nil
)
expect
(
group
.
full_path_before_last_save
).
to
eq
(
"
#{
parent
.
full_path
}
/
#{
group
.
path
}
"
)
end
end
...
...
@@ -777,8 +781,10 @@ describe Namespace do
parent
=
create
(
:group
)
group
=
create
(
:group
,
parent:
parent
)
new_parent
=
create
(
:group
)
group
.
parent
=
new_parent
expect
(
group
.
full_path_was
).
to
eq
(
"
#{
parent
.
full_path
}
/
#{
group
.
path
}
"
)
group
.
update
(
parent:
new_parent
)
expect
(
group
.
full_path_before_last_save
).
to
eq
(
"
#{
parent
.
full_path
}
/
#{
group
.
path
}
"
)
end
end
end
...
...
spec/services/system_hooks_service_spec.rb
View file @
fc22626f
...
...
@@ -86,20 +86,20 @@ describe SystemHooksService do
context
'group_rename'
do
it
'contains old and new path'
do
allow
(
group
).
to
receive
(
:path_
was
).
and_return
(
'old-path'
)
allow
(
group
).
to
receive
(
:path_
before_last_save
).
and_return
(
'old-path'
)
data
=
event_data
(
group
,
:rename
)
expect
(
data
).
to
include
(
:event_name
,
:name
,
:created_at
,
:updated_at
,
:full_path
,
:path
,
:group_id
,
:old_path
,
:old_full_path
)
expect
(
data
[
:path
]).
to
eq
(
group
.
path
)
expect
(
data
[
:full_path
]).
to
eq
(
group
.
path
)
expect
(
data
[
:old_path
]).
to
eq
(
group
.
path_
was
)
expect
(
data
[
:old_full_path
]).
to
eq
(
group
.
path_
was
)
expect
(
data
[
:old_path
]).
to
eq
(
group
.
path_
before_last_save
)
expect
(
data
[
:old_full_path
]).
to
eq
(
group
.
path_
before_last_save
)
end
it
'contains old and new full_path for subgroup'
do
subgroup
=
create
(
:group
,
parent:
group
)
allow
(
subgroup
).
to
receive
(
:path_
was
).
and_return
(
'old-path'
)
allow
(
subgroup
).
to
receive
(
:path_
before_last_save
).
and_return
(
'old-path'
)
data
=
event_data
(
subgroup
,
:rename
)
...
...
@@ -110,13 +110,13 @@ describe SystemHooksService do
context
'user_rename'
do
it
'contains old and new username'
do
allow
(
user
).
to
receive
(
:username_
was
).
and_return
(
'old-username'
)
allow
(
user
).
to
receive
(
:username_
before_last_save
).
and_return
(
'old-username'
)
data
=
event_data
(
user
,
:rename
)
expect
(
data
).
to
include
(
:event_name
,
:name
,
:created_at
,
:updated_at
,
:email
,
:user_id
,
:username
,
:old_username
)
expect
(
data
[
:username
]).
to
eq
(
user
.
username
)
expect
(
data
[
:old_username
]).
to
eq
(
user
.
username_
was
)
expect
(
data
[
:old_username
]).
to
eq
(
user
.
username_
before_last_save
)
end
end
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment